陳怡勳python時間函式time.sleep
from tkinter import * #從函式庫 tkinter 輸入所有 * 方法 from math import *
#從函式庫 math 輸入所有 * 方法 from time import *
#陳怡勳輸入time函數庫,取代import time class Regular: def __init__(self, cx, cy,
cr, s, t, c, w): #類別共同的設定必然 def __init__ initiate發起 self.cx, self.cy,
self.cr = cx, cy, cr #取得中心座標cx, cy, 半徑cr self.s, self.t = s, t
#取得邊角數目s,t尖銳程度,取代原來的k = s.get() self.c, self.w = c, w
#取得顏色c,寬度w self.u = 2 * pi / self.s #使用模組 math 圓周率 pi self.x,
self.y = [], [] for i in range( int(self.s * 1.5)): self.x.append(self.cx +
self.cr*cos(i*self.u)) self.y.append(self.cy + self.cr*sin(i*self.u)) def
draw(self): #類別的方法 for i in range( int(self.s * 1.5) - self.t):
canvas.create_line(self.x[i], self.y[i], self.x[i + self.t], self.y[i + self.t],
fill = self.c, width = self.w) sleep(0.5) tk.update() def show(): #畫圖
define自訂函數 poly = Regular(cx.get(), cy.get(), cr.get(), s.get(), t.get(),
c.get(), w.get()) polyList.append(poly) polyList[len(polyList)-1].draw() def
clear(): #清除視窗的all所有canvas圖 canvas.delete('all') polyList = [] xyr =
(50,75,100,150,200,250,300,350,400,500,600) st =
(1,2,3,4,5,6,7,8,9,10,11,12,16,20,24,28,32) tk = Tk() #建構視窗tk通常取root,
window tk.title("陳怡勳視窗使用者介面GUI") #也可以定義視窗名為 window,
root課本都如此習慣 canvas = Canvas(tk, width=800, height=500) canvas.pack() cx,
cy, cr, s, t = IntVar(tk),IntVar(tk),IntVar(tk),IntVar(tk),IntVar(tk)
cx.set(xyr[3]) #預設座標 x=200 cy.set(xyr[3]) #預設座標 y=200 cr.set(xyr[1])
#預設半徑 r=100 s.set(st[9]) #預設邊形 8 t.set(st[0]) #預設堅度 1即凸多邊形 l0 =
Label(tk, text="陳怡勳", bg='yellow').pack(side=LEFT) #距離左側 l1 = Label(tk,
text="位置x ").pack(side=LEFT) #距離左側 option1 = OptionMenu(tk, cx,
*xyr).pack(side=LEFT) l2 = Label(tk, text="位置y ").pack(side=LEFT) #距離頂端
option2 = OptionMenu(tk, cy, *xyr).pack(side=LEFT) l3 = Label(tk, text="半徑r
").pack(side=LEFT) #半徑 option3 = OptionMenu(tk, cr, *xyr).pack(side=LEFT)
label4 = Label(tk, text="邊形s ").pack(side=LEFT) #幾個邊 option4 =
OptionMenu(tk, s, *st).pack(side=LEFT) label5 = Label(tk, text="堅度t
").pack(side=LEFT) #相鄰建構,尖銳度 option5 = OptionMenu(tk, t,
*st).pack(side=LEFT) label6 = Label(tk, text="顏色").pack(side=LEFT) #顏色 c =
StringVar(tk) colorL = ('black','red', 'green', 'blue', 'purple', 'gray')
c.set(colorL[0]) option6 = OptionMenu(tk, c, *colorL).pack(side=LEFT) label7 =
Label(tk, text="寬度").pack(side=LEFT) #寬度 w = IntVar(tk) widthL = (1, 2, 3,
4, 5, 6) w.set(widthL[0]) option7 = OptionMenu(tk, w, *widthL).pack(side=LEFT)
button = Button(tk, text=" 繪圖 ", command = show,
bg='black',fg='white').pack(side=LEFT) button1 = Button(tk, text="移除All",
command = clear).pack(side=LEFT) tk.mainloop()
增加畫線段的函數
<>
https://www.facebook.com/robertjcliu/posts/pfbid02GiJjx6qRSK8LdjMr6XqFjnk9T7rc6UsnseQrxdxpbXLY6rCYNSGiKK9tUCVXuRMEl
回覆刪除529欠pre
回覆刪除