如何在turtle graphics(python)中绘制椭圆/椭圆形?

如何在turtle graphics(python)中绘制椭圆/椭圆形?,python,turtle-graphics,Python,Turtle Graphics,如何在turtle graphics(python)中绘制椭圆/椭圆形?我希望能够使用circle()函数或类似函数绘制椭圆和椭圆的一部分。我可以用#turtlesize(stretch#u wid=None,stretch#len=10,outline=None)在一张邮票上盖章。但是我不希望它是彩色的。您可以使用turtle的shapesize()函数来制作椭圆 shape("circle") shapesize(5,4,1) fillcolor("white") 我自己制作了绘制椭圆的函

如何在turtle graphics(python)中绘制椭圆/椭圆形?我希望能够使用circle()函数或类似函数绘制椭圆和椭圆的一部分。我可以用#turtlesize(stretch#u wid=None,stretch#len=10,outline=None)在一张邮票上盖章。但是我不希望它是彩色的。

您可以使用turtle的shapesize()函数来制作椭圆

shape("circle")
shapesize(5,4,1)
fillcolor("white")

我自己制作了绘制椭圆的函数,我个人认为这非常有用:

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
是圆的半径,它控制椭圆的大小。之所以向左/向右转弯,是因为没有它,椭圆是对角的。

我们可以在Turtle模块中使用椭圆的参数方程生成椭圆。 下面的代码可能有点长,但使用它,我们可以根据需要在任何方向绘制椭圆。您可以根据需要编辑它。我们基本上改变椭圆的参数角度并绘制曲线

  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()

嘿,感谢您的回复,没有名为“ellipse”的形状,但是您的fillcolor(“白色”)命令用于我上面提到的#turtlesize(stretch_wid=None,stretch_len=10,outline=None)。所以你帮我解决了它!:)这里有一个冗长的答案和演示代码:另外,这可能很有用:
  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()