Форум сайта python.su
приветствую, помогите плиз, задача в чем. Сцены для анимации. Дом и его окружение. Движение солнца.
(Дом и окружение с этим все ясно)Вопрос в следующем. как осуществить движение солнца?(солнце в jpg) буду очень признателен за помощь
Офлайн
Можно воспользоваться Tkinter и объектом Canvas.
1. Качаете и импортируете PIL.
2. Выполняете инструкцию импортирования:
import Tkinter import Image import ImageTk
Img = Image.open(file_foto_name)
Img_x = ImageTk.PhotoImage(Img)
Canvas_img = Tkinter.Canvas(root, height = **Высота всего рисунка, width = **Ширина всего рисунка)
S = Canvas_img.create_image(**Первая позицияХ, **Первая позицияУ, image = Img_x, anchor = "nw")
for posx in range(**Первая позицияХ, **Последняя позицияХ + 1): Canvas_img.move(S, приращение по Х, **Первая позицияУ) Canvas_img.update_idletasks()
Отредактировано 4kpt (Ноя. 17, 2012 16:51:43)
Офлайн
Если так не понятно, могу выложить пример. Только солнца у меня нет….
Офлайн
спасибо большое, а с рисунком GIF не нужно же лишний действий? конверт.и все прочее.. Выложите пример пожалуйста.Спасибо
Офлайн
Выложу вечером. Сейчас занят. Если до этого времени никто другой не даст примера…
Да, gif конвертировать не нужно, но нужно…
Отредактировано 4kpt (Ноя. 17, 2012 15:24:13)
Офлайн
Получите пример…
# -*- coding:utf-8 -*- import ImageTk import Tkinter import time root = Tkinter.Tk() root.geometry("800x800+0+0") img = ImageTk.PhotoImage(file = "001.gif") cnv = Tkinter.Canvas(root, height = 700, width = 700) cnv.pack() S = cnv.create_image(100, 600, image = img, anchor = "nw") def move_img(event = None): for i in range(41): # Всего шагов time.sleep(0.1) # Выставляется время шага #Выставляется направление и длина шага относительно начальных Х и У if i < 20: # от нижнего угла к верхнему двадцать шагов cnv.move(S, 10, -10) else: # через 20 шагов от верхнего к нижнему остальные 20 cnv.move(S, 10, 10) cnv.update_idletasks() # Отобразить каждый шаг на экране but = Tkinter.Button(root, text = u"Запустить движение") but.bind("<Button-1>", move_img) but.pack() root.mainloop()
Офлайн
Благодарю, а вот можно еще спросить. Что в строке
but.bind(“<Button-1>”, move_img) вместо <Button-1> что вставлять?или как сделать движение без кнопки?
Офлайн
Заменяешь строки:
but = Tkinter.Button(root, text = u"Запустить движение") but.bind("<Button-1>", move_img) but.pack()
move_img()
Отредактировано 4kpt (Ноя. 18, 2012 15:17:46)
Офлайн
Прошу прощения за мою тупость в программировании)но в чем ошибка?
Прикреплённый файлы:
Снимок1.PNG (43,8 KБ)
Офлайн
Вам нужно сначала установить PIL (Python Image Librery). Не забудьте, что он должен быть под Ваш Python…
Офлайн