Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Viviani - main.py

main.py

Caricato da: Poggi Marco
Scarica il programma completo

  1. from tkinter import *
  2. from punto import *
  3. from disegno import Disegno
  4. from viviani import Viviani
  5.  
  6. def domanda(messaggio, l1, l2):
  7.      """Richiede un float da tastiera"""
  8.      while True:
  9.           print(messaggio, end='')
  10.           try:
  11.                x=float(input())
  12.           except ValueError:
  13.                print('Sono ammessi solo numeri')
  14.                continue
  15.           except OverflowError:
  16.                print('Si è inserito un valore troppo grande')
  17.                continue
  18.           if (x<l1) or (x>l2):
  19.                print("Si possono inserire numeri compresi tra %8.4f e %8.4f" %(l1, l2))
  20.                continue
  21.           return x
  22.  
  23. def inizia_tavola(posto):
  24.      bs=Punto()
  25.      ad=Punto()
  26.      bs.x=-10.0
  27.      bs.y=-7.5
  28.      ad.x=10.0
  29.      ad.y=7.5
  30.      return Disegno(posto, bs, ad)
  31.  
  32. def assi(dove):
  33.      """Disegna gli assi"""
  34.      vecchio=dove.colore
  35.      s=Segmento()
  36.      s.fine.x=5.6
  37.      s.fine.y=0
  38.      s.fine.z=0
  39.      dove.colore='#10aaaa'
  40.      dove.linea(s.inizio.isometrico(), s.fine.isometrico())
  41.      s.fine.x=0
  42.      s.fine.y=5.6
  43.      dove.colore='#aa10aa'
  44.      dove.linea(s.inizio.isometrico(), s.fine.isometrico())
  45.      s.fine.y=0
  46.      s.fine.z=5.6
  47.      dove.colore='#aaaa10'
  48.      dove.linea(s.inizio.isometrico(), s.fine.isometrico())
  49.      dove.colore=vecchio
  50.  
  51. print (" Curva di Viviani ".center(80, '-'), end='\n\n')
  52. curva=Viviani(2.8)
  53. radice=Tk()
  54. radice.title('Curva di Viviani ')
  55. foglio=Canvas(radice, bg='#102010', width=800, height=600)
  56. tela=inizia_tavola(foglio)
  57. tratto=Segmento()
  58. alfa=-math.pi*2.0
  59. omega=math.pi*2
  60. passo=(omega-alfa)/1500.0
  61. curva.calcolo(alfa, tratto.inizio)
  62. tela.colore='#d10f00'
  63. assi(tela)
  64. while (alfa<=omega):
  65.      alfa+=passo
  66.      curva.calcolo(alfa, tratto.fine)
  67.      tela.linea(tratto.inizio.isometrico(), tratto.fine.isometrico())
  68.      tratto.inizio=tratto.fine.clona()
  69. foglio.pack()
  70. radice.mainloop()