Voglio solo disegnare il cerchio che ha esattamente 15x15 pixel di dimensioni, e ha riempimento e contorno. Sto usando Java2D. Il problema è, come risultato di sequenze chiamate Graphics2D.fill(circle)
e Graphics2D.draw(circle)
il cerchio di 16x16 pixel disegnato. È a causa del meccanismo di outlinig Java2D interno, che per le dimensioni 15x15 fornisce una struttura a cerchi 16x16. Inoltre, se chiedo a Java2D di disegnare un contorno circolare di 14x14 pixel, esso disegna esattamente 14x14 px. Ho provato a giocare con l'antialias e i suggerimenti per il colpo di renderer senza fortuna. Ecco:Come disegnare la corsa interna con Java2D
RenderingHints.VALUE_STROKE_NORMALIZE
eEllipse2D.Double(0, 0, 15, 15)
contornoRenderingHints.VALUE_STROKE_PURE
e lo stesso schema - Avviso di 1px distorsione- precedente suggerimento ictus e
Ellipse2D.Double(0, 0, 14, 14)
RenderingHints.VALUE_STROKE_NORMALIZE
,Ellipse2D.Double(0, 0, 15, 15)
contorno e antialiasing accenno
Quindi, non posso disegnare il contorno del cerchio di 15px (anche 13 px, 29 px e qualsiasi dimensione dispari) con Java2D. C'è un modo per disegnare una sorta di tratto interno, che riempie i pixel al bordo interno della forma?
IMHO non c'è modo di farlo nella libreria java Grapics/Graphics2D perché stavo affrontando lo stesso problema in passato e non riuscivo a trovare alcuna soluzione ragionevole. Ad ogni modo, l'opzione 1 e 4 sembra buona se non vuoi cambiare la tua libreria grafica. – dagi12