Python|Python 实现“嫦娥奔月“小动画,一起来看看这漂亮的嫦娥吧【仅供娱乐】

Python|Python 实现“嫦娥奔月“小动画,一起来看看这漂亮的嫦娥吧【仅供娱乐】
文章图片

中秋节快要来了,“嫦娥奔月”是我国古代的一个美丽神话,它反映了古代人类祖先飞天和探索宇宙苍穹的梦想。现在伟大的中国航天人为实现这一梦想取得了重大科技成就,神舟系列载人航天飞船发射成功是我们每个炎黄子孙的骄傲!
恰逢神舟十二号今天返航,中国航天员首次从中国空间站返回地球!而且神舟十三号也即将准备发射!!
一个伟大的日子里做个小动画能否圆个飞天梦想呢,算是痴人说梦吧!不废话了,翠花,上酸菜:
源代码:

import tkinter as tk from time import sleepdef init(): global cv,chang cv.delete('all') img1 = tk.PhotoImage(file='MOON.gif') img2 = tk.PhotoImage(file='CHANG.gif') moon = cv.create_image(100,100,image=img1) chang = cv.create_image(936,680,image=img2) cv.update() def move1(): global cv,btn1,btn2,chang btn1.configure(state=tk.DISABLED) btn2.configure(state=tk.DISABLED) cv.coords(chang,936,680) t = [i for i in range(10,72)] for i in range(62): cv.move(chang,-13,-9) cv.update() sleep(t[i]/323) btn1.configure(state=tk.NORMAL) btn2.configure(state=tk.NORMAL)def move2(): global cv,btn1,btn2,chang btn1.configure(state=tk.DISABLED) btn2.configure(state=tk.DISABLED) cv.coords(chang,936,680) x = lambda i:i*30 y = lambda i:0.6*i*i+110 for t in range(30,3,-1): cv.coords(chang,x(t),y(t)) cv.update() sleep(0.2) btn1.configure(state=tk.NORMAL) btn2.configure(state=tk.NORMAL) def main(): global cv,chang,btn1,btn2 root = tk.Tk() root.geometry('1024x768') root.title(u'嫦娥奔月') root.resizable(False,False) cv = tk.Canvas(root, width=1024, height=768, bg='black') cv.pack() btn1 = tk.Button(root,text=' 嫦娥直线奔月',command=move1) btn1.place(x=80,y=680) btn2 = tk.Button(root,text=' 嫦娥抛物线奔月',command=move2) btn2.place(x=220,y=680) img1 = tk.PhotoImage(file='MOON.gif') img2 = tk.PhotoImage(file='CHANG.gif') moon = cv.create_image(100,100,image=img1) chang = cv.create_image(936,680,image=img2) root.mainloop() if __name__=="__main__": app = main()

注:tk.Canvas.coords(object,x,y) 参数方程直接作x,y坐标参数移动object非常方便。

素材图片Python|Python 实现“嫦娥奔月“小动画,一起来看看这漂亮的嫦娥吧【仅供娱乐】
文章图片



Python|Python 实现“嫦娥奔月“小动画,一起来看看这漂亮的嫦娥吧【仅供娱乐】
文章图片

程序效果
【Python|Python 实现“嫦娥奔月“小动画,一起来看看这漂亮的嫦娥吧【仅供娱乐】】俗话说每个人都有一个哈姆雷特,在这中秋佳节团圆日里,祝愿每个为此文点赞的人,都会有一个漂亮的嫦娥姐姐!

    推荐阅读