^^Canvas e' concepita come un continuo.

Sebbene i punti della canvas siano pixel, e quindi a coordinate intere, la canvas e' concepita come un continuo. Quindi le coordinate possono essere numeri con virgola. La continuita' e' resa visivamente tramite una tecnica-artefatto (antialiasing).

 

La canvas e' concepita come un continuo !  non una sequenza di interi-unità-pixel.

  1. Ed e' quindi numerizzata coi numeri con la virgola, non con i numeri interi.
  2. L'asse orizzontale delle x, e' quindi inteso come una retta senza spessore.
  3. La coordinata y=0 deve quindi essere considerata questa retta (che non ha spessore), e non una riga orizzontale di pixel.. E' l'algoritmo di tracciamento che si preoccupa di dare un'apparenza alla linea, anche se si trova per 1/3 su un pixel e per 2/3 sull'adiacente.
  4. Questo ha conseguenze rilevanti nel transform coordinate poiche':

    se si inverte il verso delle y:

    1. se le coordinate intere sono i pixel,
       allora la riga di pixel rimane inalterate (e' fissa-invariante) nella trasformazione
    2. se le coordinate intere sono rette immaginarie senza spessore, che stanno tra un pixel e l'altro
      allora la coordinata verticale dei pixel cambia di segno.

 

fillRect(0, 0, b, 1) riempie tutto il pixel soprastante l'asse x.

 

Problematica del rappresentare spessori = 0

C'e' la contraddizione della rappresentazione della retta senza spessore, che non puo' essere senza spessore, altrimenti sarebbe invisibile.

Questo e' il caso quando si tratta di distinguere tra regioni  x>0 e x>=0.

Si genera una contraddizione tra la definizione tramite formula della zona e quello che si vuole far apparire all'occhio: lo spessore espresso dalla formula non puo' essere 0.

 

Esempio

Transformazione di coordinate