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?

È stato utile?

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:

  1. Aggiungi CGPath al percorso corrente.
  2. Aggiungi percorso corrente al percorso di clipping (svuotamento in tal modo percorso corrente).
  3. Aggiungi CGPath al percorso corrente.
  4. 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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top