2008-09-03 19 views
5

Sto acquisendo dati da un tablet utilizzando Java (rocce della libreria JPen) e vorrei essere in grado di dipingere un pennarello in modo più naturale.Come posso disegnare una curva che varia di spessore lungo il suo percorso?

Attualmente sto disegnando la pennellata come segmenti di linea retta con uno spessore di tratto diverso.

Ci deve essere qualcosa nella libreria grafica di Java che mi consenta di farlo in modo più efficiente.

Giusto?

risposta

0

I RIP PostScript spesso convertono i cerchi in curve e curve in una serie di segmenti di linea retta. Il numero di segmenti dipende dall'impostazione di planarità, che per impostazione predefinita è quella adatta per la risoluzione del display raster.

Una linea spessa o segmenti di linea spessa possono essere convertiti in poligoni pieni.

1

Non l'ho mai fatto, ma qui ci sono un paio di cose che potresti provare. Innanzitutto, è possibile implementare una personalizzazione Stroke che crea trapezi magri. La larghezza dei tappi terminali sarebbe una funzione della pressione nei punti finali. Se funziona, puoi provare a rendere i segmenti di linea più naturali usando Bezier curves per formare "trapezi curvi". Potresti essere in grado di utilizzare QuadCurve2D per aiutare.

1

C'è una soluzione più generale disponibile almeno. La funzione è stata aggiunta a Inkscape in base a uno recent algorithm. Puoi vederlo applicato direttamente al tuo problema in some screenshots. Può estrudere qualsiasi pennello di forma lungo il percorso per simulare un pennello, ad esempio, ma dovresti portarlo su Java dall'algoritmo nel primo link o dai sorgenti di Inkscape. Inoltre, è coperto da brevetti quindi dovresti rilasciare il tuo codice sotto GPL (l'autore dà il permesso esplicito) o acquistare una licenza di brevetto.

Problemi correlati