CoreGraphics arrotondati spessore angolo
-
21-09-2019 - |
Domanda
Ogni volta che ho tratto un percorso con gli angoli arrotondati su iPhone, gli angoli arrotondati sono più spesse rispetto al resto del percorso accarezzò. Vedi qui per quello che voglio dire:
spessore angolo arrotondato http://img181.imageshack.us/img181/6372/ screenshot20100320at123.png
Non capisco perché questo accade, tutte le idee?
Soluzione
Sono d'accordo con l'analisi di Peter Hosey che la metà esterna delle linee è sempre ritagliato fuori, ma la mia raccomandazione sarebbe quella di spostare tutte le coordinate .5 pixel verso l'interno, invece. In questo modo le linee rette saranno più nitide (non antialias su 2 pixel dello schermo) pure.
Altri suggerimenti
Ho il sospetto che si sta disegnando all'interno di un tracciato di ritaglio rettangolare; angoli rientrano completamente all'interno del rettangolo, ma i lati vengono tagliati a metà. metà all'interno del percorso di ritaglio e così elaborati, metà all'esterno e quindi allontanato fermato
Prova ad aggiungere il percorso del tracciato di ritaglio prima di accarezzarlo.
Per fare questo, è necessario aggiungere il CGPath al percorso attuale del contesto due volte:
- Aggiungi CGPath al percorso corrente.
- Aggiungi percorso corrente al percorso di clipping (svuotamento in tal modo percorso corrente).
- Aggiungi CGPath al percorso corrente.
- Tratto percorso attuale.
Sembra proprio più spessa. Se si ingrandisce su di esso si vedrà quello che sembra un paio di pixel in più di nero è in realtà alcuni pixel di grigio causate da antialiasing.
Provare a disattivare l'antialiasing per vedere se il risultato ha un aspetto migliore.
Modifica:. Anche l'angolo in basso a destra sembra avere un effetto ombra