Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/88: Рейтинг темы: голосов - 88, средняя оценка - 4.72
10 / 9 / 0
Регистрация: 10.04.2020
Сообщений: 40

Движение окружности

08.05.2020, 16:36. Показов 18473. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доработайте предыдущую программу (№ 8) так, чтобы кружок мог двигаться в любом направлении и становился красным при удалении от точки старта на 100 в любом направлении и становился снова зеленым при возвращении обратно.


Вот программа № 8:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import tkinter
 
 
def key_pressed(event):
    if event.keysym == 'space':
        canvas.coords(oval, (300, 300, 310, 310))
    if event.keysym == 'Up':
        canvas.move(oval, 0, -10)
    if canvas.coords(oval)[1] < 50:
        canvas.itemconfig(oval, fill='green')
 
 
master = tkinter.Tk()
canvas = tkinter.Canvas(master, bg='blue', height=600, width=600)
oval = canvas.create_oval((300, 300), (310, 310), fill='green')
canvas.pack()
master.bind("<KeyPress>", key_pressed)
master.mainloop()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.05.2020, 16:36
Ответы с готовыми решениями:

Движение картинки по окружности
Кто-то как-то раз уже просил написать подобную программу, но ответа не даждался Используя библиотеку Tkinter, нужно написать код,...

Движение по окружности
Такая задачка: нужно чтобы шар катился по сферической поверхности ну или хотя бы по окружности, помогите написать код, просто не...

Движение квадрата по окружности
С помощью canvas я нарисовал систему координат и в первом квадранте организовал движение квадрата по окружности и в другой программе я...

4
14 / 11 / 5
Регистрация: 01.02.2020
Сообщений: 21
23.12.2020, 13:18
Вот мой код, если перепутал координаты, то извиняй, сам учусь в Яндекс Лицеи и постигаю Tkinter.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import tkinter
 
def key_pressed(event):
    if event.keysym == 'space':
        canvas.coords(oval, (300, 300, 310, 310))
        canvas.itemconfig(oval, fill='red')
    if event.keysym == 'Up':
        canvas.move(oval, 0, -10)
    if event.keysym == 'Down':
        canvas.move(oval, 0, 10)
    if event.keysym == 'Left':
        canvas.move(oval, -10, 0)
    if event.keysym == 'Right':
        canvas.move(oval, 10, 0)
    if canvas.coords(oval)[1] < 200 or canvas.coords(oval)[1] > 400 \
        or canvas.coords(oval)[2] < 210 or canvas.coords(oval)[2] > 410:
        canvas.itemconfig(oval, fill='green')
    elif canvas.coords(oval)[1] > 200 or canvas.coords(oval)[1] < 400 \
        or canvas.coords(oval)[2] > 210 or canvas.coords(oval)[2] < 410:
        canvas.itemconfig(oval, fill='red')     
         
 
 
master = tkinter.Tk()
canvas = tkinter.Canvas(master, bg='blue', height=600, width=600)
oval = canvas.create_oval((300, 300), (310, 310), fill='red')
canvas.pack()
master.bind("<KeyPress>", key_pressed)
master.mainloop()
P.S: можно убрать быстрое перемещение в центр, делал его для себя, для проверки.
0
1 / 1 / 0
Регистрация: 27.12.2020
Сообщений: 10
27.12.2020, 15:40
За что отвечает canvas.coords(oval)[1] < 200 , в частности, это [1] ? В учебнике я не нашел объяснения
0
14 / 11 / 5
Регистрация: 01.02.2020
Сообщений: 21
27.12.2020, 17:06
Yes_No_1_0, canvas.coords(oval)[1] < 200 проверяет координаты овала по оси y, [1] - означает ось y, [2] - означает ось x. Я сам не нашёл в учебнике этого, в инете тоже ничего полезного не нашёл, по этому сам пытался решить, точнее подобрать
1
1 / 1 / 0
Регистрация: 31.12.2022
Сообщений: 31
31.12.2022, 17:15
import tkinter


def key_pressed(event):
if event.keysym == 'space':
canvas.coords(oval, (300, 300, 310, 310))
canvas.itemconfig(oval, fill="green")
if event.keysym == 'Up':
canvas.move(oval, 0, -10)
if event.keysym == 'Down':
canvas.move(oval, 0, 10)
if event.keysym == "Left":
canvas.move(oval, -10, 0)
if event.keysym == "Right":
canvas.move(oval, 10, 0)
if ((canvas.coords(oval))[1] < 210) or ((canvas.coords(oval))[1] > 390):
canvas.itemconfig(oval, fill='red')
elif ((canvas.coords(oval))[2] < 220) or ((canvas.coords(oval))[2] > 400):
canvas.itemconfig(oval, fill='red')


master = tkinter.Tk()
canvas = tkinter.Canvas(master, bg='blue', height=600, width=600)
oval = canvas.create_oval((300, 300), (310, 310), fill='green')
canvas.pack()
master.bind("<KeyPress>", key_pressed)
master.mainloop()
# [1] и [2] это координаты точек, т.е. если ты находишься на коорд (100, 100), то чтоб сдвинуться на 10 шагов влево нужно: canvas.move(oval, -10, 0), затем применить какие либо решения при этом переходе: if (canvas.coords(oval))[1] <= 110:
canvas.itemconfig(oval, fill='red')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.12.2022, 17:15
Помогаю со студенческими работами здесь

Постройте две окружности, имитируя движение одной окружности по другой
Постройте на экране компьютера две окружности радиусов R1, R2 разных цветов, имитируя движение одной окружности по другой.

составить программу,демонстрирующую движение маятника настенных часов(движение по дуге окружности)
составить программу,демонстрирующую движение маятника настенных часов(движение по дуге окружности)

Движение окружности внутри окружности
Я задала движение окружности слева направо, мне нужно поместить внутрь нее новую окружность,чтобы она двигалась внутри также (как-будто...

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

Движение окружности по окружности
Помогите пожалуйста с решением, используя технологию объектно-ориентированного программирования разработать движение окружности по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru