首頁>技術>

1 效果圖

2 說明

=====

2.1 環境:python3.8

2.2 熟悉python和tkinter的相關知識

2.3 尤其複習tkinter的canvas、create_oval、move的相關知識

2.4 註釋清楚,小白秒懂

3 程式碼講解

========

3.1 第1步:匯入模組

from tkinter import *from math import cos, sin, piimport time 

3.2 第2步:視窗定義

root = Tk()#視窗標題名root.title('sun-earth-moon')#視窗大小和位置root.geometry('800x800+600+200')# 設定視窗的背景顏色,以“黑色”為例root["background"] = "black"#畫布的大小和背景顏色設定c = Canvas(root, width=600,height=600,bg='black',highlightthickness=0)#也可以:減去畫布邊框的厚度#c.config(highlightthickness=0)#畫布的位置c.place(x=150,y=150,anchor='nw')

3.3 第3步:畫太陽,地球線,地球,月球

#太陽c.create_oval(200,175,250,225, fill='red')#地球軌跡線圈,長300,高200c.create_oval(150,100,450,300,outline='green', width=5)#地球相關#地球初始座標x_o, y_o = 0,0#地球earth = c.create_oval(x_o-10,y_o-10,x_o+10,y_o+10, fill='blue')#月球相關#月球moon = c.create_oval(x_o+10,y_o-2,x_o+15,y_o+2, fill='grey')#月球初始座標m_xo, m_yo = 15,0

3.4 第4步:迴圈,報錯處理,動畫掛起

#初始化角度tt = 0#去除強制關閉視窗的報錯try:    while 1:        #每次增加        t += 0.01*pi         #地球軌跡線,初始化座標150,100與450,300的關係        x = 150*cos(t) + 300        y = 100*sin(t) + 200        #月球中心座標點,可變        m_x = 20*sin(12*t)        m_y = -15*cos(12*t)                #可變的地球中心點座標        dx = x - x_o        dy = y - y_o                #可變的月球中心點座標        dm_x = m_x - m_xo         dm_y = m_y - m_yo                 #沒有這個地球和月球就掉落而消失        #迴歸        x_o = x         y_o = y         #迴歸        m_xo = m_x        m_yo = m_y                 #地球運動,x和y座標點,可變        c.move(earth, dx, dy)                #月球運動,x和y座標點,可變        c.move(moon, dx+dm_x, dy+dm_y )        #更新        c.update()        #間隔時間        time.sleep(0.05)#如果關閉視窗報錯,跳過except TclError:    pass#視窗迴圈掛起c.mainloop()

23
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 如何在Struts框架中應用FreeMarker模板技術例項