Форум сайта python.su
0
Я написал код для вращения фигуры состоящей из 37 сегментов (условный круг). Но почему-то вращения нет.
from tkinter import * import math from time import sleep root=Tk() root.title('Барабан') width=460 height=460 c = Canvas(width=width,height=height,bg='grey80') c.pack() radius=200 def x_coordinate(dlina,gradus): return width/2+dlina*math.cos(gradus*math.pi/180) def y_coordinate(dlina,gradus): return height/2-dlina*math.sin(gradus*math.pi/180) gradus=90-360/37 #фигура (условный круг) состоит из 37 сегментов #построение первоначальной фигуры x1=width/2 y1=height/2-radius for n in range(37): if n==0:zvet='green' elif n%2==0:zvet='black' elif n%2!=0:zvet='red' x2=x_coordinate(radius,gradus) y2=y_coordinate(radius,gradus) segment=c.create_polygon(width/2,height/2,x1,y1,x2,y2, fill=zvet, outline="") x1,y1=x2,y2 gradus=gradus-360/37 #смещение сегментов на угол "360/37/10" gradus=90-360/37/10 while True: for n in range(37): x1=x_coordinate(radius,gradus) y1=y_coordinate(radius,gradus) x2=x_coordinate(radius,gradus-360/37) y2=y_coordinate(radius,gradus-360/37) c.coords(n+1,width/2,height/2,x1,y1,x2,y2) gradus=gradus-360/37 c.update() sleep(0.2) root.mainloop()
Отредактировано Konstantin1984+ (Сен. 4, 2020 18:01:39)
Офлайн
72
Ну, почему нет вращения? Есть вращение на целых ноль градусов, ваши сегменты уверенным шагом топчутся на месте
.
Добавьте одну строчку кода (сдвиг угла между циклами):
........ while True: gradus -= 360/37 #добавить смещение между циклами for n in range(37): .........
Офлайн
0
Спасибо! Что-то я затупил, поспешно обратился к форуму.
Офлайн