Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: cp1252 -*-
- from Tkinter import *
- import os
- class App:
- def __init__(self, master):
- frame = Frame(master)
- frame.pack()
- self.t1 = Entry()
- self.t1.pack(side=TOP)
- self.t1.insert(0,"Bredde (px)")
- self.t1.focus()
- self.t1.select_from(0)
- self.t1.select_to(len(self.t1.get()))
- self.t2 = Entry()
- self.t2.pack(side=TOP)
- self.t2.insert(0,"Højde (px)")
- self.t3 = Entry()
- self.t3.pack(side=TOP)
- self.t3.insert(0,"Dybde (px)")
- self.t4 = Entry()
- self.t4.pack(side=TOP)
- self.t4.insert(0,"Linje Bredde (px)")
- self.t5 = Entry()
- self.t5.pack(side=TOP)
- self.t5.insert(0,"black")
- self.b1 = Button(text="Go!", fg="green", command=self.main)
- self.b1.pack(side=LEFT)
- self.b2 = Button(text="Quit", fg="red", command=root.destroy)
- self.b2.pack(side=LEFT)
- wi = master.winfo_screenwidth() - 40
- he = master.winfo_screenheight() - 200
- self.canvas = Canvas(frame, bg="white", width=wi, height=he)
- self.canvas.pack(side=BOTTOM)
- self.itemHandle = []
- # starter main
- def main(self):
- b_ = int(self.t1.get())
- h_ = int(self.t2.get())
- d_ = int(self.t3.get())
- w_ = int(self.t4.get())
- c_ = self.t5.get()
- box = draw_box(b_, h_, d_)
- try:
- print self.itemHandle
- for itm in self.itemHandle:
- self.canvas.delete(itm)
- self.itemHandle = []
- except:
- pass
- conns = ['ab','bc','cd','ad','ef','fg','gh','eh','cg','bf','ae','dh']
- c = 0
- ## self.canvas.create_oval(10,10,10,10, fill="red")
- try:
- for points in box:
- ## print conns[c] + ': ' + str(points[0][0])+ ' ' +str(points[0][1]) + ' => ' + str(points[1][0])+ ' '+ str(points[1][1])
- handle = self.canvas.create_line(
- points[0][0] + b_ + int(b_ / 3)+ int(d_ / 4), points[0][1] + h_ + int(h_ / 3) + int(d_ / 4), #x0,y0 inp => [[x0,y0],[x1,y1]]
- points[1][0] + b_ + int(b_ / 3)+ int(d_ / 4), points[1][1] + h_ + int(h_ / 3)+ int(d_ / 4), #x1,y1
- width=w_, fill=c_
- )
- self.itemHandle.append(handle)
- c += 1
- except Exception as err:
- self.t5.delete(0, END)
- self.t5.insert(0, err)
- # Laver de otte hjørner på en kasse (se diagram for hvilke punkter)
- ## c____ g
- ## /| /
- ## b/_|___/|
- ## | /d |f|h
- ## |/____|/
- ## a e
- def draw_box(b_,h_,d_):
- a = [0,0]
- b = [0,(h_) * -1]
- c = [int((b_ / 4)) + int(d_ / 2),(h_ + int((d_ / 4))) * -1] # n / 4 for at give et "perspective" view
- d = [int((b_ / 4)) + int(d_ / 2), (int((d_ / 4))) * -1] # n / 4 for at give et "perspective" view
- e = [b_, 0]
- f = [b_, (h_) * -1]
- g = [b_ + int((b_ / 4)) + int(d_ / 2), (h_ + int((d_ / 4))) * -1] # n / 4 for at give et "perspective" view
- h = [b_ + int((b_ / 4)) + int(d_ / 2), (int((d_ / 4))) * -1] # n / 4 for at give et "perspective" view
- ab = [a,b]
- bc = [b,c]
- cd = [c,d]
- ad = [a,d]
- ef = [e,f]
- fg = [f,g]
- gh = [g,h]
- eh = [e,h]
- cg = [c,g]
- bf = [b,f]
- ae = [a,e]
- dh = [d,h]
- ans = [ab,bc,cd,ad,ef,fg,gh,eh,cg,bf,ae,dh]
- return ans
- # Slutter draw_box
- root = Tk()
- app = App(root)
- root.title(".:3D box drawer:.")
- if os.name == 'nt':
- root.wm_state('zoomed')
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement