TSquare - geometria analítica

Publicado por Lucas 23/08/2006

[ Hits: 5.282 ]

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

QFacil 0.2... Qemu Facil

Programa para derivação de funções matemáticas polinomiais

Validador de cartão de crédito

Conversor de dólares em reais e vice-versa

Gerador de CPF em Python


  

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