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
Ipocicloide - disegno.py

disegno.py

Caricato da: Poggi Marco
Scarica il programma completo

  1. from tkinter import *
  2. from punto import Punto
  3.  
  4. class Disegno:
  5.  
  6.      def __init__(self, tavola, bassoSinistra, altoDestra):
  7.           """Costruttore"""
  8.           self.tavola=tavola
  9.           self.origine=bassoSinistra.clona()
  10.           self.scale=Punto()
  11.           self.scale.x=float(tavola['width'])/(altoDestra.x-bassoSinistra.x)
  12.           self.scale.y=float(tavola['height'])/(altoDestra.y-bassoSinistra.y)
  13.           self.colore='green'
  14.           self.spessore=1
  15.  
  16.      def converti(self, punto):
  17.           """Trasla le coordinate"""
  18.           nuovo=Punto()
  19.           nuovo.x=self.scale.x*(punto.x-self.origine.x)
  20.           nuovo.y=float(self.tavola['height'])-self.scale.y*(punto.y-self.origine.y)
  21.           return nuovo
  22.  
  23.      def linea(self, inizio, fine):
  24.           """Disegna una linea"""
  25.           a=self.converti(inizio)
  26.           b=self.converti(fine)
  27.           self.tavola.create_line(int(a.x), int(a.y), int(b.x), int(b.y), fill=self.colore, width=self.spessore)
  28.  
  29.      def assi(self, colore):
  30.           """Disegna gli assi cartesiani"""
  31.           a=self.converti(Punto())
  32.           self.tavola.create_line(int(a.x), 0, int(a.x), int(self.tavola['height']), fill=colore, width=self.spessore)
  33.           self.tavola.create_line(0, int(a.y), int(self.tavola['width']), int(a.y), fill=colore, width=self.spessore)