питон: колесо триаконагона - PullRequest
0 голосов
/ 20 марта 2019

Итак, я знаю, как сделать трехугольник, но я пытаюсь понять, как я могу сделать его почти как колесо (как сделать спицы по существу). Если бы вы могли помочь, это было бы здорово!

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)

Как я хочу, чтобы это выглядело так: triacontagon with radii

Ответы [ 3 ]

0 голосов
/ 21 марта 2019

Вот мое решение:

from turtle import *
circle(100)
left(90)
speed(10000000)
fd(100)
for i in range(60):
    fd(100)
    back(100)
    left(12)

Это рисует 31 спицу, так что вычислите 30, просто сделайте мне 59.

фото:

enter image description here

0 голосов
/ 22 марта 2019

Пытаясь добраться туда, где вы находитесь, где вы хотите быть, с наименьшим количеством дополнительного кода:

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

enter image description here

0 голосов
/ 20 марта 2019

Попробуйте этот код:

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
...