OpenGLを使用してNURBSサーフェス(gluNurbSurface(...))を作成していますが、コントロールポイント(黒い点)の通常の値を赤い点として表面市場に到達させる方法を知りたいです。この情報を使用して、それらの間の距離を計算することができます。
追加別の答えを得たり、主題を改善したりするために、コードの一部を書きたいので、もっと助けが得られることを願っています:
このパートでは、私がどのようにnurbsを初期化するかを観察できます。
init_surface();
theNurb = gluNewNurbsRenderer();
gluNurbsProperty(theNurb, GLU_SAMPLING_TOLERANCE, 50.0);
gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_FILL);
gluNurbsCallback(theNurb, GLU_ERROR,
(GLvoid (*)()) nurbsError);
次に、それらのパラメータを使用してサーフェスが作成されます。
gluBeginSurface(theNurb);
gluNurbsSurface(theNurb,
U+ordenU, knotsU,
V+ordenV, knotsV,
V * 3,
3,
&ctlpoints[0][0][0],
ordenU, ordenV,
GL_MAP2_VERTEX_3);
gluEndSurface(theNurb);
Cを使用していることを思い出してください。この瞬間、最初の回答でgenpfaultによって提案された関数を使用して、nurbsの値をベクトルに導入しようとしていますが、どの部分にそれらを追加する必要があるかわかりません。