TSquare - geometria analítica
Publicado por Lucas 23/08/2006
[ Hits: 5.563 ]
Homepage: http://lucasnogueira.wordpress.com
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.
#!/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()
run_update - Atualizador de Sabayon
Calcula quantos dias uma pessoa viveu
Exercício com números randômicos - randint
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)
Alternativas ao Multilogin para gerenciamento de múltiplas contas/prof... (0)









