Si sta riempiendo l'interno del rettangolo ma si sta accarezzando la linea dal centro. Poiché le coordinate in entrambi i casi (gli angoli del rettangolo e le coordinate di inizio e fine nella linea) sono definite come valori di numeri interi (senza frazioni), le coordinate si trovano sui confini dei punti esatti.
Ho detto "coordinate" sopra quando si parla dei punti della linea, per non confonderli con i punti sullo schermo. Ho anche detto "limiti di punti" invece di "limiti di pixel" per lo stesso motivo. iOS definisce le sue coordinate e tutti i punti in quelli che vengono chiamati "punti" anziché in pixel. Un punto è una misura indipendente dalla risoluzione. Entrambi i dispositivi retina e non retina hanno lo stesso numero di punti sullo schermo, è solo che corrispondono a un diverso numero di pixel effettivi. sguardo
Let ad accarezzare una linea che si trovano sui confini del punto (come nella vostra domanda) rispetto al riempimento di un rettangolo in cui gli angoli si trovano sui confini punto:
Nelle illustrazioni che seguono sto accarezzando una linea con il nero e riempiendo un rettangolo con l'arancione su uno schermo non retina e uno schermo retina. Ho anche delineato la linea e il rettangolo con il blu. In entrambi i casi è possibile visualizzare la dimensione di un punto per tale risoluzione e confrontarlo con la griglia di pixel effettiva.
Nel caso di non retina, è possibile notare che tentare di accarezzare la linea dal centro con una linea di 1 punto con (in questo caso corrispondente a una larghezza di linea di 1 pixel) riempirebbe metà dei pixel in alto e metà sui pixel sottostanti. Poiché i pixel sono riempiti solo a metà, l'opacità di tali pixel è del 50%. Ciò si traduce in un colore più chiaro (su uno sfondo bianco). Poiché entrambi i pixel in alto e in basso sono riempiti di partito, accarezzano i pixel sia sopra che sotto. Questo fa apparire la linea come se fosse larga 2 pixel invece di una.
È possibile confrontarlo rapidamente con il rettangolo che viene riempito all'interno.
Lo stesso caso su uno schermo retina, un aspetto diverso. In questo caso, la dimensione di un punto è la stessa ma consiste di 4 pixel anziché 1. Questa volta, quando si accarezza la linea, mezzo punto sopra la linea e mezzo punto sotto la linea riempirà completamente la riga di pixel sopra e sotto a causa dello schermo ad alta risoluzione. Ciò significa che la linea appare come se fosse larga 1 punto e che il colore appaia completamente opaco.
Possiamo anche vedere che il rettangolo riempito ha lo stesso aspetto.
Per risolvere questo problema, si dovrebbe mettere i punti per la vostra linea in pixel e mezzo.Tracciando la linea dal centro su un dispositivo a bassa risoluzione significa che la linea si estende di mezzo punto verso l'alto e mezzo punto verso il basso. Poiché il centro della linea si trova ora al centro del punto, significa che la linea tratteggiata si trova completamente all'interno dei pixel e la linea appare nitida. Fare ciò non avrà alcun effetto sulla linea della retina poiché spostando in basso (o su) mezzo punto, significa comunque che riempirai completamente i pixel sopra e sotto.
Nell'illustrazione seguente (per retina) ho mostrato sia la griglia di punti che la griglia di pixel.