Code Sketch
Differentiable "Field Pattern & Polygon Turtle" (just playing around :-))
By: Nisan
Category: Math
1


1




clear invisible zoom(0.2) def circleface (t:Turtle,r:Int) = runInBackground { repeat(100){ t.left(4) t.forward(r) } t.left t.forward(r) repeat(12){ t.right(4) t.forward(r/2) } t.penUp // t.left(10) t.forward(150) t.penDown repeat(90){ t.left(4) t.forward(r/4) } } def fieldpattern (t1:Turtle,t2:Turtle,t3:Turtle,tn:Int,tm:Int,x1:Int,x2:Int,x3:Int,y1:Int,y2:Int,y3:Int,l1:Int,l2:Int,l3:Int,speed:Int) = runInBackground{ var n=1 var m=1 t1.setPenColor(color(random(256),random(256),random(256))) t2.setPenColor(color(random(256),random(256),random(256))) t3.setPenColor(color(random(256),random(256),random(256))) t1.setPenThickness(8) t2.setPenThickness(8) t3.setPenThickness(8) t1.setAnimationDelay(speed) t2.setAnimationDelay(speed) t3.setAnimationDelay(speed) repeat (tm) { repeat (tn) { t1.forward(l1) t2.forward(l2) t3.forward(l3) t1.jumpTo(x1-m*200,y1-n*100) t2.jumpTo(x2-m*200,y2-n*100) t3.jumpTo(x3-m*200,y3-n*100) m=m+1 } t1.jumpTo(x1,y1) t2.jumpTo(x2,y2) t3.jumpTo(x3,y3) n=n+1 m=1 } m=1 n=1 repeat (tm) { repeat (tn) { t1.forward(l1) t2.forward(l2) t3.forward(l3) t1.jumpTo(x1+m*200,y1+n*100) t2.jumpTo(x2+m*200,y2+n*100) t3.jumpTo(x3+m*200,y3+n*100) m=m+1 } t1.jumpTo(x1,y1) t2.jumpTo(x2,y2) t3.jumpTo(x3,y3) n=n+1 m=1 } m=1 n=1 repeat (tm) { repeat (tn) { t1.forward(l1) t2.forward(l2) t3.forward(l3) t1.jumpTo(x1-m*200,y1+n*100) t2.jumpTo(x2-m*200,y2+n*100) t3.jumpTo(x3-m*200,y3+n*100) m=m+1 } t1.jumpTo(x1,y1) t2.jumpTo(x2,y2) t3.jumpTo(x3,y3) n=n+1 m=1 } m=1 n=1 repeat (tm) { repeat (tn) { t1.forward(l1) t2.forward(l2) t3.forward(l3) t1.jumpTo(x1+m*200,y1-n*100) t2.jumpTo(x2+m*200,y2-n*100) t3.jumpTo(x3+m*200,y3-n*100) m=m+1 } t1.jumpTo(x1,y1) t2.jumpTo(x2,y2) t3.jumpTo(x3,y3) n=n+1 m=1 } t1.forward(90) t2.forward(120) t3.forward(120) } def polygonturtle (t:Turtle,mn:Int,fw:Int,ex:Int,rd:Int,speed:Int) = runInBackground { var k=0 var l=2 t.setAnimationDelay(speed) t.jumpTo(fw/2,fw/2) repeat (mn) { t.forward(fw+k) t.left(360/mn) t.forward(fw+k) t.left(180) t.forward(2*(fw+k)) t.left(180) t.forward(fw+k) t.left(360/mn) k=k+ex } t.forward(fw/2) t.right t.forward(5*fw/mn) t.right //repeat (mn) { circleface(t,l*rd) // l=l+1 //} } def zooomin { var r=0.5 repeat(90){ zoom(r-0.005) } } def zooomout { var r=0.05 repeat(90){ zoom(r+0.005) } } val jumpy1 = newTurtle(0,-100) val jumpy2 = newTurtle(-100,100) val jumpy3 = newTurtle(100,100) val jumpy4 = newTurtle(0,0) jumpy1.left(35) jumpy2.right(125) jumpy3.left(145) jumpy4.left() jumpy4.setPenColor(color(random(256),random(256),random(256))) jumpy4.setFillColor(color(random(256),random(256),random(256))) jumpy4.setPenThickness(15) fieldpattern(jumpy1,jumpy2,jumpy3,9,14,0,-100,100,-100,100,100,100,100,100,2) polygonturtle(jumpy4,18,400,0,9,10) //zooomout //zooomin



Lalit Pant [2] said:

Great stuff!



Your Comment:





Login to post a comment