Добрый день. Начали с ребенком изучать Python. Столкнулись с такой проблемой: не очень понятно, как черепашка выбирает область для закрашивания. В частности, рисовали лепестки: без использования for они правильно закрасились, а когда стали рисовать их в цикле, то раскрашивание "испортилось". Подскажите, пожалуйста, что неправильно.
ОС windows, Python 3.2.5
Код без цикла:
Код с циклом:
Спасибо
ОС windows, Python 3.2.5
Код без цикла:
Код:
from turtle import *
from math import *
speed(10)
pensize(1)
colormode(255)
pencolor("cyan")
fillcolor("cyan")
heigth = 100
base = 50
rad_petal = sqrt(heigth * heigth + base * base)
tga = base * 1.0 / heigth
atna = atan(tga)
angle = (atna * 180.0 / pi)
#first petal
begin_fill()
home()
setheading(angle)
fd(rad_petal)
up()
home()
setheading(-angle)
down()
fd(rad_petal)
setheading(0)
circle(base, 180)
end_fill()
#second petal
pencolor("blue")
fillcolor("blue")
up()
home()
down()
begin_fill()
setheading(3*angle)
fd(rad_petal)
up()
home()
setheading(angle)
down()
fd(rad_petal)
setheading(2 * angle)
circle(base, 180)
end_fill()
#third petal
pencolor("purple")
fillcolor("purple")
up()
home()
down()
begin_fill()
setheading(5*angle)
fd(rad_petal)
up()
home()
setheading(3 * angle)
down()
fd(rad_petal)
setheading(4 * angle)
circle(base, 180)
end_fill()
hideturtle()
exitonclick()
Код с циклом:
Код:
from turtle import *
from math import *
from random import randint
speed(10)
pensize(1)
pencolor("cyan")
colormode(255)
heigth = 100
base = 50
rad_petal = sqrt(heigth * heigth + base * base)
tga = base * 1.0 / heigth
atna = atan(tga)
angle = (atna * 180.0 / pi)
def invisible_to_home():
up()
home()
down()
def petal(num):
r = randint(0, 255)
g = randint(0, 255)
b = randint(0, 255)
fillcolor((r ,g ,b))
begin_fill()
invisible_to_home()
setheading((num * 2 + 1) * angle)
fd(rad_petal)
invisible_to_home()
setheading((num * 2 - 1) * angle)
fd(rad_petal)
setheading(num * 2 * angle)
circle(base, 180)
end_fill()
amount = int(360/ angle / 2)
print(angle, " amount: ", amount)
for i in range (amount):
petal(i)
invisible_to_home()
dot(10, "red")
hideturtle()
exitonclick()
Спасибо