TSquare - geometria analítica

Publicado por Lucas 23/08/2006

[ Hits: 5.258 ]

Homepage: http://lucasnogueira.wordpress.com

Download tsquare




Com apenas as coordenadas cartesianas dos pontos de um quadrado ou retângulo, ele lhe da a área e o perímetro do polígono.

  



Esconder código-fonte

#!/usr/bin/python
#TSquare por lucas nogueira - luksnogueira@gmail.com - http://lucasnogueira.cjb.net
#Calcula a area e perimetro apenas com as coordenadas cartesianas
from Tkinter import *
from math import *
class app:

 def __init__(self,toplevel):
     
     #frame 01
     self.frm=Frame(toplevel)
     self.frm.pack()

     #draw's canvas
     self.canvas=Canvas(toplevel,width=200, height=200,bg='white')
     self.canvas.pack()

     #frame 02
     self.frm2=Frame(toplevel)
     self.frm2.pack()
     
     #frame 03
     self.frm3=Frame(toplevel)
     self.frm3.pack()
     
     #frame 04 
     self.frm4=Frame(toplevel)
     self.frm4.pack()
     
     #frame 05
     self.frm5=Frame(toplevel)
     self.frm5.pack()
     
     #frame 06 (buttons)
     self.frm6=Frame(toplevel)
     self.frm6.pack()

     #frame 7
     self.frm7=Frame(toplevel)
     self.frm7.pack()
     
      #borda do canvas
     altura=200
     self.canvas.create_rectangle((0,altura-0),(200,altura-200))
     

     #text da frame 01
     Label(self.frm,text='TSQUARE 0.6').pack()
     Label(self.frm,text='Indique as coordenadas cartesianas dos 4 pontos do quadrilatero.').pack()
     Label(self.frm,text='Definicoes dos pontos: (canvas=200cm^2)').pack()
     Label(self.frm,text='A*    D*').pack()
     Label(self.frm,text='B*    C*').pack()

     
     #coordenadas a(entry)
     Label(self.frm2,text='Coord. Ponto A (x,y) cm').pack(side=LEFT)
     self.a1=Entry(self.frm2)
     self.a2=Entry(self.frm2)
     self.a1.pack(side=LEFT)
     self.a2.pack(side=LEFT)
    
     #coordenadas b
     Label(self.frm3,text=' Coord. Ponto B (x,y) cm').pack(side=LEFT)
     self.b1=Entry(self.frm3)
     self.b2=Entry(self.frm3)
     self.b1.pack(side=LEFT)     
     self.b2.pack(side=LEFT)
     
     #coordenadas b
     Label(self.frm4,text=' Coord. Ponto C (x,y) cm').pack(side=LEFT)
     self.c1=Entry(self.frm4)
     self.c2=Entry(self.frm4)
     self.c1.pack(side=LEFT)     
     self.c2.pack(side=LEFT)
     
     #coordenadas b
     Label(self.frm5,text=' Coord. Ponto D (x,y) cm').pack(side=LEFT)
     self.d1=Entry(self.frm5)
     self.d2=Entry(self.frm5)
     self.d1.pack(side=LEFT)     
     self.d2.pack(side=LEFT)



     #button draw
     self.bt=Button(self.frm6,text='desenhar')
     self.bt.bind('<Button-1>',self.draw)
     self.bt.pack(side=LEFT)

     #button clear
     self.cl=Button(self.frm6,text='limpar vars')
     self.cl.bind('<Button-1>',self.clr)
     self.cl.pack(side=LEFT)
                    
                    
     
     #label result
     self.res=Label(self.frm7,text='')
     self.res.pack()

 def clr(self,lucas):
     self.area,self.p=0,0
     self.res['text']='Area = %i cm^2 | Perimetro = %i cm' %(self.area,self.p)
     self.res.pack()
     
 def pixalize(self,cm):
      cm=28*cm
      return cm
           
 def draw(self,event):
     altura=200
     ax=int(self.a1.get()) #PA
     ay=int(self.a2.get()) #PA
     
     bx=int(self.b1.get()) #PB
     by=int(self.b2.get()) #PB
     
     cx=int(self.c1.get()) #PC
     cy=int(self.c2.get()) #PC
     
     dx=int(self.d1.get()) #PD
     dy=int(self.d2.get()) #PD
     
     lx=cx - ax
     ly=by - ay #lado y
     
     self.area=lx*ly
     self.p=(2*lx)+(2*ly)

     int(self.area)
     int(self.p)
     
     self.res['text']='Area = %i cm^2 | Perimetro = %i cm' %(self.area,self.p)
     self.res.pack()
      
     self.pixalize(cx)
     self.pixalize(bx)
     self.pixalize(by)
     self.pixalize(cy)
     self.canvas.create_rectangle(bx,altura-by,cx,altura-cy,fill='gray')
root=Tk()
app(root)
root.mainloop()

Scripts recomendados

Backup em Python

Simples script para atrasar/adiantar legendas

Cálculo de um número binomial

Interface para Qemu

Organizador de Arquivos em Python + tkinter


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts