私は現在、次数4のベジェ曲線を組み合わせてベジェ曲線を生成しています。私はGL_LINES
を使用しています。私は、ベジェの各点で接線、標準、およびバイノーマルを描く必要があります。ベジェ曲線の各点に接線を描くopengl
は、私の知る限りでは、Tの任意の値で接線を見つけるために、方程式は、私は現在、以下のように上記の式を使用しています
P'(t) = 4 * (1-t)^3 *(P1 - P0) + 12 *(1-t)^2*t*(P2-P1) + 12 * (1-t) * t^2 * (P3-P2) + 4 * t^3 * (P4-P3)
です。 jはX、Y、Z値及びtangentPoints
に対応
temp = 1-t;
tangentPoints[val].XYZW[j] = (4 * pow(temp, 3)*(V[k + 1].XYZW[j] - V[k].XYZW[j])) + (12 * pow(temp, 2)*t*(V[k + 2].XYZW[j] - V[k + 1].XYZW[j])) + (12 * (temp)*pow(t, 2)*(V[k + 3].XYZW[j] - V[k + 2].XYZW[j])) + (4 * pow(t, 3)*(V[k + 4].XYZW[j] - V[k + 3].XYZW[j]));
頂点を掲載することによって定義された構造です。 Vは制御点の頂点の配列です。
私は単純に、値tとそれに対応する接線の値(例えばdx)のベジェ曲線(xと言う)の点と線の間に線を引いています。しかし、(x、dx)このように((x、dx)から線を引く)。
しかし、私はつまり、私は右の画像を取得しています、対応する接線の点の各々にベジェ点を追加していたときに、私は(X、X + DX)の間に線を描くことによって、正しい結果を取得してい
誰が、なぜこれがそうとも与えられたベジェポイントに接線と、通常の描画の洞察を提供している教えてもらえます。
普通の方法でも同じことをする必要がありますか?私はP(t)とP(t)+ normal(t)の間に線を描くことを意味します。 – sss999
@ sss999:本質的にはyesです。接線/法線/何をそれらの速度/曲率/に比例させるのではなく、ベクトルを正規化することによって常に固定サイズのものを描くことができます。例えば。 P(t)+ P '(t)/ | P'(t)| 'は正接である。 'normal'はおそらくすでに正規化されています。 – ybungalobill
3Dの場合、カーブ上の点の移動平面を最初に見つけ出す必要があるため、物事はもう少し作業になりますが、* super *複雑ではなく、http://stackoverflow.com/a/でカバーされています。 25458216/740553 –