2008-09-03 6 views
5

私はJava(JPenライブラリの岩石)を使用してタブレットからデータをキャプチャしており、より自然な方法でペンストロークをペイントしたいと考えています。パスに沿って厚みが変化する曲線を描くにはどうすればよいですか?

現在、私はペンストロークをストロークの太さが異なる直線セグメントとして描画しています。

Javaのグラフィックライブラリには、これをより効率的にするためのものがなければなりません。

右か?

答えて

0

PostScript RIPは、円を曲線に変換し、曲線を一連の直線セグメントに変換することがよくあります。セグメントの数はフラットネス設定に依存します。フラットネス設定は、デフォルトでラスタディスプレイ解像度に適したものに設定されます。

太い線分または太い線分をスキニーの塗りつぶしポリゴンに変換することができます。

1

私は決してこれをやったことはありませんが、ここでは試してみることができるカップルです。まず、スキンな台形を作成するカスタムStrokeを実装することができます。エンドキャップの幅は、エンドポイントにおける圧力の関数である。その場合は、Bezier curvesを使用して線状部分をより自然に見せるようにして、「曲線状の台形」を形成することができます。あなたはQuadCurve2Dを利用することができます。

1

少なくとも一般的な解決策があります。この機能は、recent algorithmに基づいてInkscapeに追加されました。 some screenshotsに問題が直接適用されていることがわかります。これはパスに沿ってどのようなシェイプブラシを押してもペイントブラシを模倣することができますが、最初のリンクのアルゴリズムやInkscapeソースからJavaに移植する必要があります。また、特許で保護されているので、GPLの下でコードを公開し(明示的な許可を得ている)、特許ライセンスを購入する必要があります。

関連する問題