Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.73 KB | None | 0 0
  1. # -*- coding: cp1252 -*-
  2. from Tkinter import *
  3. import os
  4.  
  5. class App:
  6.     def __init__(self, master):
  7.         frame = Frame(master)
  8.         frame.pack()
  9.  
  10.         self.t1 = Entry()
  11.         self.t1.pack(side=TOP)
  12.         self.t1.insert(0,"Bredde (px)")
  13.         self.t1.focus()
  14.         self.t1.select_from(0)
  15.         self.t1.select_to(len(self.t1.get()))
  16.        
  17.        
  18.         self.t2 = Entry()
  19.         self.t2.pack(side=TOP)
  20.         self.t2.insert(0,"Højde (px)")
  21.        
  22.         self.t3 = Entry()
  23.         self.t3.pack(side=TOP)
  24.         self.t3.insert(0,"Dybde (px)")
  25.  
  26.         self.t4 = Entry()
  27.         self.t4.pack(side=TOP)
  28.         self.t4.insert(0,"Linje Bredde (px)")
  29.  
  30.         self.t5 = Entry()
  31.         self.t5.pack(side=TOP)
  32.         self.t5.insert(0,"black")
  33.        
  34.         self.b1 = Button(text="Go!", fg="green", command=self.main)
  35.         self.b1.pack(side=LEFT)
  36.  
  37.         self.b2 = Button(text="Quit", fg="red", command=root.destroy)
  38.         self.b2.pack(side=LEFT)
  39.  
  40.         wi = master.winfo_screenwidth() - 40
  41.         he = master.winfo_screenheight() - 200
  42.  
  43.         self.canvas = Canvas(frame, bg="white", width=wi, height=he)
  44.         self.canvas.pack(side=BOTTOM)
  45.  
  46.         self.itemHandle = []
  47.  
  48.  
  49.     # starter main
  50.     def main(self):
  51.         b_ = int(self.t1.get())
  52.         h_ = int(self.t2.get())
  53.         d_ = int(self.t3.get())
  54.        
  55.         w_ = int(self.t4.get())
  56.         c_ = self.t5.get()
  57.        
  58.         box = draw_box(b_, h_, d_)
  59.         try:
  60.             print self.itemHandle
  61.             for itm in self.itemHandle:
  62.                 self.canvas.delete(itm)
  63.             self.itemHandle = []
  64.         except:
  65.             pass    
  66.        
  67.  
  68.         conns = ['ab','bc','cd','ad','ef','fg','gh','eh','cg','bf','ae','dh']
  69.         c = 0
  70. ##        self.canvas.create_oval(10,10,10,10, fill="red")
  71.         try:
  72.             for points in box:
  73. ##            print conns[c] + ': ' + str(points[0][0])+ ' ' +str(points[0][1]) + ' => ' + str(points[1][0])+ ' '+ str(points[1][1])
  74.        
  75.                 handle = self.canvas.create_line(
  76.                     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]]
  77.                     points[1][0] + b_ + int(b_ / 3)+ int(d_ / 4), points[1][1] + h_ + int(h_ / 3)+ int(d_ / 4), #x1,y1
  78.                     width=w_, fill=c_
  79.                     )
  80.                 self.itemHandle.append(handle)
  81.                 c += 1
  82.         except Exception as err:
  83.             self.t5.delete(0, END)
  84.             self.t5.insert(0, err)
  85.            
  86.                
  87.        
  88.        
  89.  
  90. # Laver de otte hjørner på en kasse (se diagram for hvilke punkter)
  91.  
  92. ##     c____ g
  93. ##    /|    /
  94. ##  b/_|___/|
  95. ##  | /d  |f|h
  96. ##  |/____|/
  97. ##  a      e
  98.  
  99.  
  100. def draw_box(b_,h_,d_):
  101.    
  102.     a = [0,0]
  103.     b = [0,(h_) * -1]
  104.     c = [int((b_ / 4)) + int(d_ / 2),(h_ + int((d_ / 4))) * -1] # n / 4 for at give et "perspective" view
  105.     d = [int((b_ / 4)) + int(d_ / 2), (int((d_ / 4))) * -1] # n / 4 for at give et "perspective" view
  106.     e = [b_, 0]
  107.     f = [b_, (h_) * -1]
  108.     g = [b_ + int((b_ / 4)) + int(d_ / 2), (h_ + int((d_ / 4))) * -1] # n / 4 for at give et "perspective" view
  109.     h = [b_ + int((b_ / 4)) + int(d_ / 2), (int((d_ / 4))) * -1]  # n / 4 for at give et "perspective" view
  110.  
  111.     ab = [a,b]
  112.     bc = [b,c]
  113.     cd = [c,d]
  114.     ad = [a,d]
  115.  
  116.     ef = [e,f]
  117.     fg = [f,g]
  118.     gh = [g,h]
  119.     eh = [e,h]
  120.  
  121.     cg = [c,g]
  122.     bf = [b,f]
  123.     ae = [a,e]
  124.     dh = [d,h]
  125.    
  126.     ans = [ab,bc,cd,ad,ef,fg,gh,eh,cg,bf,ae,dh]
  127.  
  128.     return ans
  129.     # Slutter draw_box
  130.  
  131.  
  132. root = Tk()
  133. app = App(root)
  134. root.title(".:3D box drawer:.")
  135. if os.name == 'nt':
  136.     root.wm_state('zoomed')
  137. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement