http://nehe.gamedev.netからいくつかのチュートリアルを試しています。openGLプログラミングを学ぶために、球をベジェ曲線に沿って配置し、真珠のストリングとして表示されるようにします。どうすればそのような球を曲線に沿って配置できますか。私はdeCasteljauのアルゴリズムを使用して曲線を描いているので、曲線上のXYZポイントを取得できます。
1 に答える
1
ベジエ曲線の全長に対して球体が十分に小さい場合は、球体を等間隔に配置するだけで、一連の真珠のような外観を得ることができます。(球体が比較的大きい場合は、球体のオーバーラップについてさらに心配する必要があります。これは簡単な問題ではなく、おそらく OpenGL の学習にはあまり有益ではありません。)
t
ベジエ曲線のパラメータ値は から0
まで変化し1
ます。10 か所 (両端と 8 つの内部ポイント) でベジエ曲線を評価するには、次のようにします。
for( int i = 0; i <= 9; ++i )
{
double t = i / 9.0;
double x, y;
EvalBezier( t, x, y );
DrawSphere( x, y, radius );
}
与えられた をEvalBezier( t, x, y )
埋める場所。満足のいく結果が得られるように選択してください。自動的に選択したい場合は、ポイントからポイントまでの最小距離の半分を大まかな見積もりとして使用してください。これを行う場合は、エンドポイントを特別に処理することを忘れないでください。次または前のポイントのみを使用します (どちらか一方)。(x,y)
t
radius
radius
i
i-1
i+1
于 2009-06-30T05:36:54.500 に答える