NetaTaneMenu >>>> 羊歯 *羊歯 ---- 左図が下のソースで描いたもの。右図は正式なもの。 #ref(shida.JPG,center) ソースがこれです。どこをどう手直しすれば右図に なるのでしょう? DATA 0.836,0.044,-0.044,0.836,0,0.619 READ a1,b1,c1,d1,e1,f1 DATA -0.144,0.302,0.302,0.141,0,0.127 READ a2,b2,c2,d2,e2,f2 DATA 0.141,-0.302,0.302,0.141,0,0.619 READ a3,b3,c3,d3,e3,f3 DATA 0,0,0,0.175,0,0 READ a4,b4,c4,d4,e4,f4 SET POINT STYLE 4 LET px = 1 LET py = 1 !描画領域の設定 SET WINDOW -1,1.1,-1,4 PLOT POINTS: px,py FOR i=0 TO 100000 LET k = RND IF k=<0.7 THEN LET px = a1*px+b1*py+e1 LET py = c1*px+d1*py+f1 ELSEIF k=<0.8 THEN LET px = a2*px+b2*py+e2 LET py = c2*px+d2*py+f2 ELSEIF k=<0.9 THEN LET px = a3*px+b3*py+e3 LET py = c3*px+d3*py+f3 ELSE LET px = a4*px+b4*py+e4 LET py = c4*px+d4*py+f4 END IF SET POINT STYLE 1 SET POINT COLOR 3 PLOT POINTS: px, py NEXT i END COLOR(#fe891c){その前にまずは}ソースの簡単な説明を。お願いします。 ではあまりにもぶっきらぼうですよね。 そこで,次のようなL-systemなんでしょうか? http://melusine.eu.org/syracuse/metapost/galeries/lsystems1/ COLOR(#fe891c){例えば} !描画領域の設定 SET WINDOW -1,1.1,-1,4 の部分を SET WINDOW -2,3,-1,4 のように縦横比を1:1にするだけで,プロポーションはご要望通りになります。 DATA -0.144,0.302,0.302,0.141,0,0.127 READ a2,b2,c2,d2,e2,f2 の部分を DATA -0.144,0.302,0.302,0.141,0,0.5 READ a2,b2,c2,d2,e2,f2 のように最後の数値を変えれば,枝の出る場所が望み通りに。 誰が元のプログラムを描いたのか知りませんが, DATA 0.836,0.044,-0.044,0.836,0,0.619 READ a1,b1,c1,d1,e1,f1 DATA -0.144,0.302,0.302,0.141,0,0.127 READ a2,b2,c2,d2,e2,f2 DATA 0.141,-0.302,0.302,0.141,0,0.619 READ a3,b3,c3,d3,e3,f3 DATA 0,0,0,0.175,0,0 READ a4,b4,c4,d4,e4,f4 というデータ部が冗長です。データの自由度が不明。 例えば, c*=-b*, d*=a*, なのでしょうか?三系列ある意味は?