^^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.
- Ed e' quindi numerizzata coi
numeri con la virgola, non con i numeri interi.
- L'asse orizzontale delle x, e' quindi inteso come una retta senza
spessore.
- 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.
- Questo ha conseguenze rilevanti nel transform coordinate poiche':
se si inverte il verso delle y:
- se le coordinate intere sono i pixel,
allora la riga di pixel rimane inalterate (e' fissa-invariante)
nella trasformazione
- 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