![]() ![]() |
今、ある点列(X1,Y1),(X2,Y2),(X3,Y3)・・・(Xn,Yn)を考えます。ここに、(Xn,Yn)が決まったときにその次の(Xn+1、Yn+1)は次の式で決まるものとします。 Xn+1=Yn−0.97*Xn + 5/(1+Xn2) − 5,Yn+1=−0.995*Xn
最初の点を(X1,Y1)=(1,0)としてこの点列を順に表示させて行くと次のように鳥が羽を広げたような不思議な図形が現れます。このプログラムを作成してください。
![]() |
![]() (1)上の(Xn+1,Yn+1)は小さな数になるので見にくくなります。そこで実際には(6*Xn+1,6*Yn+1)と6倍拡大して表示しています。 |
![]() |
【基礎課題7-1】を拡張して、今度は「描画」ボタンを押したらImageコンポーネント上に (10, 20) の場所から右に長さ30の赤い横線を描くプログラムを作ってください。
(10,20),(11,20),(12,20)・・・(40,20)の点(ピクセル)の色を順に赤色に指定すれば良いことになりますね。for文を使えば簡単にできるはずです。
![]() ![]() |
「描画」ボタンを押したら次のような黒い(直角)三角形を描くプログラムを作ってください。
![]() |
![]() (1) 底辺(横の直線)と垂辺(縦の直線)は【基礎課題7-2】と同様にして描けるはずです。 (2) 斜辺上の(x,y)座標については (60−y)/(x−30)=3/4 という関係がある事を利用します。この関係により、例えばxの値を30から30+40まで順に増やして行き、各々のxに対するyを求めれば良いのです。ただし、一般にyの値は実数になってしまいます。これを最も近い整数にする必要がありますが、それにはRound関数を用いればよいのです。Round関数の意味は次の通りです。 |