YouTubeでm/n角形という話題を見かけた。
これは,タートルグラフィックスの定番らしい。Processingでプログラムを作ってみることにする。久々のProcessingはロゴも変わりバージョンは4.1.1になっている。
タートルグラフィックスの見本コードがサンプルの中にあったので,それを参考にしてみる。クリックするとタートルが進むとして,k角形の形は,一辺の長さを進むタートルの進行方向(方向単位ベクトル)の方位角が,進むたびに360度/kづつ増加するものと定義する。
float turtleX;float turtleY;float turtleT;float k;void setup() {size(512, 512);turtleX = width/2;turtleY = height/2;turtleT = 0;k=3.1415926;background(255);}void forward(float go) {float newX = turtleX + go*cos(turtleT);float newY = turtleY + go*sin(turtleT);line(turtleX, turtleY, newX, newY);turtleX = newX;turtleY = newY;}void rotate(float rot) {turtleT = turtleT - radians(rot);}void mousePressed() {strokeWeight(2);stroke(mouseX/2,mouseY/2,random(0,255));forward(128);rotate(360/k);}
図:Π角形作図の途中段階のイメージ
0 件のコメント:
コメントを投稿