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

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

08.05.2020, 16:36. Показов 18365. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru