Как нарисовать эллипс/овал в графике черепахи (питон)? Я хочу иметь возможность рисовать эллипс и часть эллипса, используя функцию circle() или аналогичную. Я могу отпечатать один, используя #turtlesize(stretch_wid=None, stretch_len=10, контур=None). Но я не хочу, чтобы он был заполнен цветом.
Как нарисовать эллипс/овал в графике черепахи (питон)?
comment
Здесь есть длинный ответ и демонстрационный код: stackoverflow.com/questions/34284958/
- person George Birbilis   schedule 04.09.2017
comment
Кроме того, это может быть полезно: mathopenref.com/coordcirclealgorithm.html
- person George Birbilis   schedule 04.09.2017
Ответы (3)
Вы можете использовать функцию shapesize() черепахи, чтобы сделать эллипс.
shape("circle")
shapesize(5,4,1)
fillcolor("white")
person
avinash pandey
schedule
06.04.2015
Привет, спасибо за ваш ответ, формы с именем эллипс не существует, однако ваша команда fillcolor (white) работала для #turtlesize (stretch_wid = None, stretch_len = 10, контур = None), о котором я упоминал выше. Итак, вы помогли мне решить эту проблему! :)
- person Tristan; 06.04.2015
Я сделал свою функцию рисования овалов, которую лично считаю очень полезной:
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
— это радиус круга, и он определяет, насколько большим будет эллипс. Причина поворота влево/вправо в том, что без него эллипс диагональный.
person
Ollie
schedule
16.06.2018
Мы можем сделать эллипс, используя его параметрическое уравнение в модуле 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()
person
Devansu Yadav
schedule
24.05.2020