processingにはellipse(x,y,width,height)で円を描くメソッドが存在するが、点線の円が描けない。
radians(angle)で度数法から弧度法に変換。その値をxはcosメソッド、yはsinメソッドに渡す。iの値を1ずつ増やす(つまり1度ずつ増やしていく)ことで点が集まり円になる。
size(200, 200);
smooth();
for(int i=0; i<360; i++) {
point(cos(radians(i))*50 + width/2,
sin(radians(i))*50 + height/2);
}
変数などを利用して円を描く構造をよりわかりやすくしたもの。
for文の中のupdate(繰り返しの度に評価される式)の値を変えること(今回は5ずつ増やしている)で点線を実現。
size(200, 200);
int x_offset = width/2;
int y_offset = height/2;
int radius = 50;
smooth();
for(int i=0; i<360; i+=5) {
point(cos(radians(i))*radius + x_offset,
sin(radians(i))*radius + y_offset);
}
0 件のコメント:
コメントを投稿