from tkinter import * #從函式庫 tkinter 輸入所有 * 方法
from math import * #從函式庫 math 輸入所有 * 方法
t = (3,4,5,6,7,8,9,10,11,12,16,20,32) #宣告一元組tuple(...)
tk = Tk()
tk.title("劉任昌圖形使用者介面GUI=Graphical Unser Interface")
canvas = Canvas(tk, width=500, height=500)
canvas.pack()
def show(event): #定義由事件event(按鈕選單)呼叫的函數show
cx, cy, cr = 210, 210, 200 #宣告圓中心座標cx, cy半徑cr
x, y =[],[] #宣告二陣列[...]
k = s.get() #取得 ge t按鈕選單的選擇變數
u = 2 * pi / k #使用模組 math 圓周率 pi
for i in range(k):
x.append(cx + cr*cos(i*u)) #加入陣列的元素
y.append(cy + cr*sin(i*u)) #使用模組 math 三角函數cos, sin
for i in range(k-1):
canvas.create_line(x[i], y[i], x[i+1], y[i+1])
canvas.create_line(x[k-1], y[k-1], x[0], y[0]) #可考慮增加width寬度,fill顏色
def diagonal():
cx, cy, cr = 210, 210, 200 #宣告圓中心座標cx, cy半徑cr外來學繼承 inheritance
x, y =[],[] #宣告二陣列[...]
k = s.get() #取得 ge t按鈕選單的選擇變數
u = 2 * pi / k #模組 math 圓周率 pi
for i in range(k):
x.append(cx + cr*cos(i*u)) #加入陣列的元素
y.append(cy + cr*sin(i*u))
for i in range(k):
for j in range(i+2, k):
canvas.create_line(x[i], y[i], x[j], y[j], fill="tomato", width=3)
s = IntVar(tk)
combo = OptionMenu(tk, s, *t, command = show).pack() #下拉式按鈕combobox
button = Button(tk, text="對角線", command = diagonal).pack()#按鈕button
tk.mainloop()
這個網誌中的熱門文章
陳怡勳python自訂函數built-in內建函數import輸入函式庫
from math import * #陳怡勳從math函式庫輸入所有函數 #取代原來的import math def f(r): #定義函數 define 名稱(參數),以下相同縮排都是 print("圓面積pi r*r: "+str(pi*r*r)) print("圓周長pi r*2: "+str(pi*r*2)) print("球體積pi r*r*r*4/3:"+str(pi*r*r*r*4/3)) print("球表面積pi r*r*4: "+str(pi*r*r*4)) def g(angle): print("正弦sin:"+str(sin(angle))) print("餘弦cos:"+str(cos(angle))) def h(x,y): #用在模組化你的程式碼 f(x) g(y) print("陳怡勳:自訂函數h呼叫f,g再呼叫內建pi,sin,cos\n") h(1,pi/6)
https://www.facebook.com/robertjcliu/posts/pfbid02GiJjx6qRSK8LdjMr6XqFjnk9T7rc6UsnseQrxdxpbXLY6rCYNSGiKK9tUCVXuRMEl
回覆刪除