7−3 drawLineメソッドについて


直線を描画するには、drawLineメソッドを使います。

drawLine( x1, y1, x2, y2 )について・・・
  • x1, y1・・・は開始地点の座標 ( C++BuilderでいうMoveTo )
  • x2, y2・・・は終了地点の座標 ( C++BuilderでいうLineTo )
つまり、drawLineメソッドは、MoveTo・LineToの両方を同時に行うのです。

 

【例】 (10、10)と(50、50)を結ぶ直線を描画する
drawLine( 10, 10, 50, 50 );


練習問題

 まず、drawLineメソッドを用いて三角形を描いてみましょう。

左の座標 (30,60)
上の座標 (70,30)
右下の座標 (70,60)

ここに、描画する線の色は、setColorというメソッドで指定します。

作成したら、各自動作を確認してください。この用例をみればdrawLineメソッドの用法は理解できると思います。


基礎課題7−1
基礎課題7−1の解答


応用課題

 今、ある点列(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倍拡大して表示しています。

(2) 座標の原点はフレームの中心となるようにしています。

(3) フレームのサイズは300×300です。

(4) (Xn+1,Yn+1)が求まるたびにその点(実際には6倍拡大した座標)に色指定すれば良いのです。
しかし(Xn+1,Yn+1)は実数なので最も近い整数に変換する必要があります。それには( int )を使い、
型をキャストします。

応用課題の解答