top of page

 

解説

SET WINDOW -5,5,-1,9

SET COLOR 17

PLOT AREA:-50,50;-50,-50;50,-50;50,50

DRAW grid

 

SET LINE STYLE 1

SET LINE COLOR 21

SET LINE width 3 

PLOT LINES: -5,0;5,0

SET COLOR 21

PLOT AREA:-5,1;-5,-1;5,-1;5,1

 

 

PICTURE DCurve(n)

   OPTION ANGLE DEGREES

   

   SET LINE STYLE 1

   SET LINE COLOR 12

   SET LINE width n+5

   

   PLOT LINES: 0,0;0,1

   IF n=0 THEN

      EXIT PICTURE

   ELSE

      SET LINE STYLE 1

      SET LINE COLOR 12

      DRAW DCurve(n-1) WITH SCALE(r)*ROTATE(alfa)*SHIFT(0,1)

      SET LINE width n+1

      DRAW DCurve(n-1) WITH SCALE(r)*ROTATE(-alfa)*SHIFT(0,1)

      SET LINE width n+1      

   END IF

END PICTURE

 

 

LET r=0.8

LET alfa=20

DRAW DCurve(5) WITH SCALE(2)*SHIFT(0,1)

 

 

PICTURE ume

   OPTION BASE 0

   DIM x(360), y(360)

   FOR t=0 TO 270

      LET x(t)=COS(10*t/3)*COS(2*t)*0.3

      LET y(t)=COS(10*t/3)*SIN(2*t)*0.3

   NEXT t

   SET AREA COLOR 38

   MAT PLOT AREA: x,y

   SET LINE STYLE 1

   SET LINE COLOR 27

   SET LINE width 1

   FOR s=0 TO 360 STEP 30 

      PLOT LINES: 0,0;0.1*COS(s),0.1*SIN(s) 

   NEXT s   

END PICTURE

 

FOR a=35 TO 145 STEP 7

   DRAW ume WITH SHIFT(RND*COS(a)*5,RND*SIN(a)*4+5)   

NEXT a

 

FOR a=40 TO 140 STEP 10

   DRAW ume WITH SHIFT(RND*COS(a)*5+2,RND*SIN(a)*4+5)

NEXT a

 

FOR a=40 TO 140 STEP 10

   DRAW ume WITH SHIFT(RND*COS(a)*5-2,RND*SIN(a)*4+5)

NEXT a

 

END

SET WINDOW -5,5,-1,9 “x座標の範囲を-5~5,y座標の範囲を‐1~9にする。”

SET COLOR 17 “17番(水色)の色を使う”

PLOT AREA:-50,50;-50,-50;50,-50;50,50 “(-50 ,50),(-50 ,-50),(50 ,-50),(50 ,50)を順に結んでできる四角形の周と内部を塗りつぶす。”

DRAW grid “x軸方向 間隔1,y軸方向 間隔1の格子を描く(座標をかく)”

 

SET COLOR 21 “色を21(黄緑)に設定”

PLOT AREA:-5,1;-5,-1;5,-1;5,1 “この範囲を塗りつぶす”

 

“枝を描く関数”

 

PICTURE DCurve(n)

   OPTION ANGLE DEGREES “三角関数の角の大きさの単位を度にする。”

   

   SET LINE STYLE 1

   SET LINE COLOR 12

   SET LINE width n+5 “描く線の太さをn+5にする”

   

   PLOT LINES: 0,0;0,1 “線を点(0,0)から(0,1)まで引く”

   IF n=0 THEN

      EXIT PICTURE “nが0ならば描くのをやめる”

   ELSE “nが0以外なら以下を行う”

      SET LINE STYLE 1

      SET LINE COLOR 12 “線の太さを12(茶色)に設定”

      DRAW DCurve(n-1) WITH SCALE(r)*ROTATE(alfa)*SHIFT(0,1)

      SET LINE width n+1

“DCurve(n)はnを1減らしてr倍で角度alfa傾かせx方向に1ずらしてかく、太さはn+1”

      DRAW DCurve (n-1) WITH SCALE(r)*ROTATE(-alfa)*SHIFT(0,1)

      SET LINE width n+1      

   END IF “IF文の終わり”

END PICTURE

 

 

LET r=0.8 “rに0.8を代入”

LET alfa=20 “rに20を代入”

DRAW DCurve(5) WITH SCALE(2)*SHIFT(0,1) “DCurveをn=5,2倍の大きさ、(0,1)ずらしてかく”

 

“梅を描く関数”

 

PICTURE ume

   OPTION BASE 0 “配列宣言で添字の下限の指定を省略したときの値を0にする”

   DIM x(360), y(360) “xとyの次元を1とし,添字の上限を360とする。”

   FOR t=0 TO 270 “tが0から270まで以下を行う「花びらを描く」”

      LET x(t)=COS(10*t/3)*COS(2*t)*0.3 

      LET y(t)=COS(10*t/3)*SIN(2*t)*0.3

   NEXT t

   SET AREA COLOR 38

   MAT PLOT AREA: x,y

   SET LINE STYLE 1

   SET LINE COLOR 27

   SET LINE width 1

   FOR s=0 TO 360 STEP 30 

      PLOT LINES: 0,0;0.1*COS(s),0.1*SIN(s)  “「おしべをかく」”

   NEXT s   

END PICTURE

 

FOR a=35 TO 145 STEP 7 “梅の花を乱数RNDを使って枝の上に散らす”

   DRAW ume WITH SHIFT(RND*COS(a)*5,RND*SIN(a)*4+5)  “35度から145度の扇形の範囲にランダムに散らして拡大、移動” 

NEXT a

 

FOR a=40 TO 140 STEP 10  “梅の花を乱数RNDを使ってさっきとずらして散らす”

   DRAW ume WITH SHIFT(RND*COS(a)*5+2,RND*SIN(a)*4+5)

NEXT a

 

FOR a=40 TO 140 STEP 10  “梅の花を乱数RNDを使ってさっきとずらして散らす”

   DRAW ume WITH SHIFT(RND*COS(a)*5-2,RND*SIN(a)*4+5)

NEXT a

 

END

ソースリスト
担当 2年 せいたちゃん
bottom of page