TSquare - geometria analítica

Publicado por Lucas 23/08/2006

[ Hits: 5.247 ]

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

Passgen

Sudoku

Cria no fluxbox um menu para mudar o wallpaper

Agendador de comandos

Invariância Discreta de Escala


  

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