from tkinter import *
from punto import *
from disegno import Disegno
from viviani import Viviani
def domanda(messaggio, l1, l2):
"""Richiede un float da tastiera"""
while True:
print(messaggio, end='')
try:
x=float(input())
except ValueError:
print('Sono ammessi solo numeri')
continue
except OverflowError:
print('Si è inserito un valore troppo grande')
continue
if (x<l1) or (x>l2):
print("Si possono inserire numeri compresi tra %8.4f e %8.4f" %(l1, l2))
continue
return x
def inizia_tavola(posto):
bs=Punto()
ad=Punto()
bs.x=-10.0
bs.y=-7.5
ad.x=10.0
ad.y=7.5
return Disegno(posto, bs, ad)
def assi(dove):
"""Disegna gli assi"""
vecchio=dove.colore
s=Segmento()
s.fine.x=5.6
s.fine.y=0
s.fine.z=0
dove.colore='#10aaaa'
dove.linea(s.inizio.isometrico(), s.fine.isometrico())
s.fine.x=0
s.fine.y=5.6
dove.colore='#aa10aa'
dove.linea(s.inizio.isometrico(), s.fine.isometrico())
s.fine.y=0
s.fine.z=5.6
dove.colore='#aaaa10'
dove.linea(s.inizio.isometrico(), s.fine.isometrico())
dove.colore=vecchio
print (" Curva di Viviani ".center(80, '-'), end='\n\n')
curva=Viviani(2.8)
radice=Tk()
radice.title('Curva di Viviani ')
foglio=Canvas(radice, bg='#102010', width=800, height=600)
tela=inizia_tavola(foglio)
tratto=Segmento()
alfa=-math.pi*2.0
omega=math.pi*2
passo=(omega-alfa)/1500.0
curva.calcolo(alfa, tratto.inizio)
tela.colore='#d10f00'
assi(tela)
while (alfa<=omega):
alfa+=passo
curva.calcolo(alfa, tratto.fine)
tela.linea(tratto.inizio.isometrico(), tratto.fine.isometrico())
tratto.inizio=tratto.fine.clona()
foglio.pack()
radice.mainloop()