#python #turtle-graphics #shapes
#python #черепашья графика #фигуры
Вопрос:
Итак, я знаю, как создать трехугольник, но я пытаюсь выяснить, как я могу сделать его почти похожим на колесо (по сути, как сделать спицы). Если бы вы могли помочь, это было бы здорово!
import turtle
turtle.hideturtle()
turtle.up()
turtle.goto(0,150)
turtle.down()
numberOfSides = 30
lengthOfSide = 50
exteriorAngle = 360/numberOfSides
for i in range(numberOfSides):
turtle.forward(lengthOfSide)
turtle.right(exteriorAngle)
Как я хочу, чтобы это выглядело:
Комментарии:
1. Вы уже подумали о том, как ваша черепаха должна двигаться, чтобы нарисовать спицы? Подумайте о том, где оно находится в данный момент, а затем нарисуйте карандашом и бумагой, куда вы хотели бы его поместить. Основываясь на этом, вы сможете вычислить схему движения, необходимую для рисования всех 30 спиц (или 15 диаметров).
Ответ №1:
Попытка добраться с того места, где вы находитесь, туда, где вы хотите быть, с наименьшим количеством дополнительного кода:
import turtle
numberOfSides = 30
lengthOfSide = 75
exteriorAngle = 360 / numberOfSides
turtle.hideturtle()
turtle.sety(-lengthOfSide)
for i in range(numberOfSides):
turtle.circle(lengthOfSide, extent=exteriorAngle, steps=1)
position = turtle.position()
turtle.goto(0, 0)
turtle.setposition(position)
turtle.done()
Ответ №2:
Вот мое решение:
from turtle import *
circle(100)
left(90)
speed(10000000)
fd(100)
for i in range(60):
fd(100)
back(100)
left(12)
Это рисует 31 спицу, так что посчитайте 30, просто сделайте i 59.
картинка:
Комментарии:
1. Вы используете бессмысленные аргументы для
speed(10000000)
метода черепахи в своих различных ответах на вопросы OP по SO. Я предлагаю вам уделить минутку чтению документации кturtle.speed()
, поскольку было бы ошибкой отклонить весь ваш ответ как глупый из-за одной бессмысленной строки кода. Особенно тот, который является необязательным, не имеет отношения к вашему примеру и может быть опущен.
Ответ №3:
Попробуйте этот код:
import turtle
import math
num=30
A=turtle.position()
side=50
x=(side/2)/math.sin(math.radians(180/num))
#x contains the length of one spoke of wheel
ext=90 (180/num)
turtle.setheading(0)
for i in range(num):
turtle.forward(x)
turtle.left(ext)
turtle.forward(side)
turtle.left(ext)
turtle.forward(x)
turtle.setheading((i 1)*(360/num))
# the loop makes one triangle of polygon