di .NET e di altre Amenità

rss feed 

Silverlight: Come ottenere linee esenti da Antialias

antialias1Uno dei limiti di Silverlight 1.0 è l'impossibilità di regolare l'antialias sui singoli oggetti. Non si tratta di una sconsiderata pignoleria infatti se disegnando rette inclinate, elissi e altre forme l'antialias è di fondamentale aiuto, quando cerchiamo di tracciare una linea parallela ad uno degli assi cartesiani esso è di inutile intralcio. Provate ad esempio a vedere l'icona con la freccina nella figura qui a fianco. I margini del rettangolo soffrono di una fastidiosa sfocatura dovuta proprio all'applicazione dell'antialias su una linea che per il semplice fatto di essere parallela ai pixel non ne avrebbe realmente bisogno.

antialias2Esiste tuttavia un metodo per ottenere un risultato ottimale, come mostrato nella seconda figura. Se intendete ad esempio tracciare una linea orizzontale dal punto 10,10 al punt 100, 10, l'engie di disegno cercherà di tracciare la linea non all'interno di un singolo pixel come ci si potrebbe aspettare, ma bensì a cavallo di due pixel. Perciò si otterrà mezza linea in un pixel l'altra metà nel pixel sottostante.

Per ovviare a questo comportamento è sufficiente specificare un mezzo pixel il più per fare in modo che la nostra linea venga collocata per intero all'interno di un solo pixel. Ecco perciò che le coordinate da specificare saranno 10, 10.5 e 100, 10.5. Il risultato non ne sarà falsato perchè la differenza di mezzo pixel è pressochè impercettibile.

Technorati Tag: ,
Edit
---

Comment so far

Feedback

No comments posted yet.
Title  
Name  
Email
Url
Comment   
Please add 5 and 5 and type the answer here: