generated from mwc/project_drawing
	I coded the first ghost using circle and bezier.
Somewhere I got stuck was: - I struggled setting up the bezier function. It took some time researching to understand what was happening. Something I figured out was: The bezier function. It looks so smooth! A strategy I used: Reading online forums for help, such as stackoverflow, various Python guide websites, etc. Something I'm wondering: I was wondering on how to parameterize the bezier control points, but thanks to Varun, I know now. Something I want to learn: Nothing specific at the moment. An idea for future: No new ideas at the moment.
This commit is contained in:
		
							
								
								
									
										47
									
								
								drawing.py
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								drawing.py
									
									
									
									
									
								
							@@ -6,6 +6,53 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import turtle
 | 
					import turtle
 | 
				
			||||||
from turtle import *
 | 
					from turtle import *
 | 
				
			||||||
 | 
					import bezier
 | 
				
			||||||
 | 
					import numpy as np
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def ghostie(length,x,y):
 | 
				
			||||||
 | 
					    penup()
 | 
				
			||||||
 | 
					    turtle.goto(-150,250)
 | 
				
			||||||
 | 
					    pendown()
 | 
				
			||||||
 | 
					    left(180)
 | 
				
			||||||
 | 
					    circle(2*length, 90)
 | 
				
			||||||
 | 
					    forward(3*length)
 | 
				
			||||||
 | 
					    circle(-6*length,30)
 | 
				
			||||||
 | 
					    left(170)
 | 
				
			||||||
 | 
					    circle(5*length,30)
 | 
				
			||||||
 | 
					    circle(-0.2*length,180)
 | 
				
			||||||
 | 
					    print(pos())
 | 
				
			||||||
 | 
					#How can I determine these points directly with respect to my starting point?
 | 
				
			||||||
 | 
					    points=np.array([
 | 
				
			||||||
 | 
					        [-189.48, -160, -260, -120, -189.48],
 | 
				
			||||||
 | 
					        [78, 30, -10, -70, -140]
 | 
				
			||||||
 | 
					    ])
 | 
				
			||||||
 | 
					    curve = bezier.Curve(points, 4)  
 | 
				
			||||||
 | 
					    s_vals = np.linspace(0,1,100)
 | 
				
			||||||
 | 
					    bezierpoints= curve.evaluate_multi(s_vals)
 | 
				
			||||||
 | 
					    for n in range(1, bezierpoints.shape[1]):
 | 
				
			||||||
 | 
					        turtle.goto(bezierpoints[0][n], bezierpoints[1][n])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    left(180)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    points2=np.array([
 | 
				
			||||||
 | 
					        [-189.48, -100, -180, -150, -140],
 | 
				
			||||||
 | 
					        [-140, -100, 20, 50, 78]
 | 
				
			||||||
 | 
					    ])
 | 
				
			||||||
 | 
					    curve2 = bezier.Curve(points2, 4)
 | 
				
			||||||
 | 
					    s_vals = np.linspace(0,1,100)
 | 
				
			||||||
 | 
					    bezierpoints2= curve2.evaluate_multi(s_vals)
 | 
				
			||||||
 | 
					    for n in range(1, bezierpoints2.shape[1]):
 | 
				
			||||||
 | 
					        turtle.goto(bezierpoints2[0][n], bezierpoints2[1][n])
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    circle(-0.2*length,180)
 | 
				
			||||||
 | 
					    left(10)
 | 
				
			||||||
 | 
					    circle(5*length,30)
 | 
				
			||||||
 | 
					    left(170)
 | 
				
			||||||
 | 
					    circle(-6*length,30)
 | 
				
			||||||
 | 
					    forward(3*length)
 | 
				
			||||||
 | 
					    circle(2*length, 90)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ghostie(30)
 | 
				
			||||||
 | 
					penup()
 | 
				
			||||||
 | 
					turtle.goto(0,0)
 | 
				
			||||||
 | 
					turtle.done()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user