(マルチメディアの第3,4,5回レジュメを参考に)

演習問題1(*)

void line()のコードの一部を変更し、void dot()を用いてline()を実現する。また、 canvas[][] = 255;の値を255から0〜255の値にランダムに変化するようにし、結果がどう変わったか確認する。

HINT)無


演習問題2

四角形を描くメソッドvoid box(int st_x, int st_y, int ed_x, int ed_y)を追加する。st_x とst_y は四角形のある頂点座標、ed_x とed_y はその頂点の対角頂点座標である。(濃淡値255 で描く。)

HINT)sampleのlineメソッドを活用する。


演習問題3(*)

円を描くメソッドvoid circle(int x, int y, int radius)を追加する。xとyは円の中心座標、radiusは円の半径である。(濃淡値255で描く。)

HINT)円の方程式を思い出そう。まずr^2=(x-x1)^2+(y-y1)^2のほうを用いてcircleを実現してみて問題点を確認し,その後x=rcos(θ)+x1, y=rsin(θ)+y1を用いてcircleを実装してみよう.前者のほうはxを変化させてyを求め、後者はθを変化させてx, yを求める。また、後者の場合でもrによってきれいな円になったり点線の円になったりする。この問題を解決するには「円弧=r×θ」(θはラジアン)を使って円弧が1ピクセルになるようθの間隔を決めて0から2πまで変化させればよい。