你如何在海龟图形(python)中绘制一个ellipse/oval?
How do you draw an ellipse/oval in turtle graphics (python)?
如何在海龟图形 (python) 中绘制 ellipse/oval?我希望能够使用 circle() 函数或类似函数绘制椭圆和椭圆的一部分。我可以使用#turtlesize(stretch_wid=None, stretch_len=10, outline=None) 标记一个。但我不希望它被颜色填充。
你可以用turtle的shapesize()函数做一个椭圆。
shape("circle")
shapesize(5,4,1)
fillcolor("white")
#you can create circle or ellipse by changing value of parameter of oval=canvas.create_oval(10,15,200,150)
from Tkinter import *
top=Tk()`
canvas=Canvas(top,width=200,height=200)
canvas.pack()
oval=canvas.create_oval(10,15,200,150)
top.mainloop()
我自己做了一个画椭圆的函数,个人觉得很有用:
def talloval(r): # Verticle Oval
turtle.left(45)
for loop in range(2): # Draws 2 halves of ellipse
turtle.circle(r,90) # Long curved part
turtle.circle(r/2,90) # Short curved part
def flatoval(r): # Horizontal Oval
turtle.right(45)
for loop in range(2):
turtle.circle(r,90)
turtle.circle(r/2,90)
r
是圆的半径,它控制椭圆的大小。转left/right的原因是因为没有它,椭圆是对角的。
我们可以使用 Turtle 模块中的参数方程来制作椭圆。
下面的代码可能有点长,但是使用它我们可以在任何方向上绘制椭圆,因为 required.You 可以根据 requirement.We 编辑它基本上是改变椭圆的参数角度并绘制曲线。
import turtle
import math
def ellipse(a, b, h=None, k=None, angle=None, angle_unit=None):
myturtle = turtle.Turtle()
if h is None:
h = 0
if k is None:
k = 0
# Angle unit can be degree or radian
if angle is None:
angle = 360
converted_angle = angle*0.875
if angle_unit == 'd' or angle_unit is None:
converted_angle = angle * 0.875
# We are multiplying by 0.875 because for making a complete ellipse we are plotting 315 pts according
# to our parametric angle value
elif angle_unit == "r":
converted_angle = (angle * 0.875 * (180/math.pi))
# Converting radian to degrees.
for i in range(int(converted_angle)+1):
if i == 0:
myturtle.up()
else:
myturtle.down()
myturtle.setposition(h+a*math.cos(i/50), k+b*math.sin(i/50))
turtle.done()
我在 CodeHS 中做椭圆形 Python(乌龟)
如何在海龟图形 (python) 中绘制 ellipse/oval?我希望能够使用 circle() 函数或类似函数绘制椭圆和椭圆的一部分。我可以使用#turtlesize(stretch_wid=None, stretch_len=10, outline=None) 标记一个。但我不希望它被颜色填充。
你可以用turtle的shapesize()函数做一个椭圆。
shape("circle")
shapesize(5,4,1)
fillcolor("white")
#you can create circle or ellipse by changing value of parameter of oval=canvas.create_oval(10,15,200,150)
from Tkinter import *
top=Tk()`
canvas=Canvas(top,width=200,height=200)
canvas.pack()
oval=canvas.create_oval(10,15,200,150)
top.mainloop()
我自己做了一个画椭圆的函数,个人觉得很有用:
def talloval(r): # Verticle Oval
turtle.left(45)
for loop in range(2): # Draws 2 halves of ellipse
turtle.circle(r,90) # Long curved part
turtle.circle(r/2,90) # Short curved part
def flatoval(r): # Horizontal Oval
turtle.right(45)
for loop in range(2):
turtle.circle(r,90)
turtle.circle(r/2,90)
r
是圆的半径,它控制椭圆的大小。转left/right的原因是因为没有它,椭圆是对角的。
我们可以使用 Turtle 模块中的参数方程来制作椭圆。 下面的代码可能有点长,但是使用它我们可以在任何方向上绘制椭圆,因为 required.You 可以根据 requirement.We 编辑它基本上是改变椭圆的参数角度并绘制曲线。
import turtle
import math
def ellipse(a, b, h=None, k=None, angle=None, angle_unit=None):
myturtle = turtle.Turtle()
if h is None:
h = 0
if k is None:
k = 0
# Angle unit can be degree or radian
if angle is None:
angle = 360
converted_angle = angle*0.875
if angle_unit == 'd' or angle_unit is None:
converted_angle = angle * 0.875
# We are multiplying by 0.875 because for making a complete ellipse we are plotting 315 pts according
# to our parametric angle value
elif angle_unit == "r":
converted_angle = (angle * 0.875 * (180/math.pi))
# Converting radian to degrees.
for i in range(int(converted_angle)+1):
if i == 0:
myturtle.up()
else:
myturtle.down()
myturtle.setposition(h+a*math.cos(i/50), k+b*math.sin(i/50))
turtle.done()
我在 CodeHS 中做椭圆形 Python(乌龟)