マウス ポイントの配列、ストローク幅、および柔らかさがあります。柔らかな円や柔らかな線が描けます。ポイントの配列を描画するには、どのアルゴリズムを使用すればよいですか? 端点だけでなく、交差した線も見栄えがするようにしたい。
4 に答える
そのためには間違いなくベジエを選択します。特に、区分的な 3 次ベジエを実装します。実装と把握が非常に簡単で、3D Studio max と Photoshop で広く使用されています。
ここに良いソースがあります: http://local.wasp.uwa.edu.au/~pbourke/surfaces_curves/bezier/cubicbezier.html
ポイント間に順序があると仮定すると、4 つのコントロール ポイントを設定するには、次のようにする必要があります。
点 P[i] と点 P[i+1] の間の接線を定義します
- T1 = (P[i+1] - P[i-1])
- T2 = (P[i+2] - P[i])
2 点間を区分的に作成するには、次のようにします。
- コントロール ポイント Q1: P[i]
- コントロール ポイント Q2: Q1 からの接線に沿った点 => Q1 + 0.3T1
- コントロール ポイント Q3: Q4 の接線に沿ったポイント => Q4 - 0.3T2
- コントロール ポイント Q4: P[i+1]
0.3T を選択した理由は、十分な「強さ」を与えるための恣意的なものですが、強すぎないようにするためです。加速 (C2 連続性) も処理する、より精巧な方法を使用できます。
楽しみ
Gooch & Gooch のNon-Photorealistic Renderingから始めて、Pham の作業が役立つことに気付くかもしれません -アルゴリズムを説明するPDFを参照してください。
Tateosian による素晴らしい概要記事があり、追加のテクニックをきれいな写真で詳細に説明しています.ベジエ曲線の描画だけでは、必要な効果は得られません (どの程度ファンシーにしたいかによって異なります)。ただし、私は確かにポールの作品から始めて、それを使用して柔らかいブラシで描くだけで十分かどうかを確認します.
この分野には多くの特許があることに注意してください。
私はそれを理解しました-非常に柔らかいグラデーション円を使用し、繰り返し描画してストロークを作成し、乗算を使用してブレンドします。
スプライン アルゴリズムを探しているのかもしれません。
以下はスプラインのチュートリアルです。
[ http://www.doc.ic.ac.uk/~dfg/AndysSplineTutorial/index.html]
このテーマは、グラフィックス プログラミングに関するほとんどの本でも取り上げられています。
乾杯。