基本的に、下の画像が示すように、openGLの3点の間に曲線を描きたいと思います。4ポイントを使用してベジェ曲線を描くのに役立つコードのセグメントをいくつか見つけましたが、3ポイントでは実際には成功しませんでした。

基本的に、下の画像が示すように、openGLの3点の間に曲線を描きたいと思います。4ポイントを使用してベジェ曲線を描くのに役立つコードのセグメントをいくつか見つけましたが、3ポイントでは実際には成功しませんでした。

ベジエ曲線の定義から、次の式が得られます (x、y コンポーネントごとに)。
x(t) = (1-t)^3*p1x + 3*t*(1-t)^2*c1x + 3*t^2*(1-t)*c3x + t^3*p3x
y(t) = (1-t)^3*p1y + 3*t*(1-t)^2*c1y + 3*t^2*(1-t)*c3y + t^3*p3y

あなたの場合、中間点を知っています(p2x,p2y)。同じ値c1x を 持つと仮定することもできます。c2xそしてそれc1y も c2y同じ値を持っています
したがって、t=0.5 で次の方程式が得られます。
p2x = (3/4)*c1x+(p1x+p3x)/8
p2y = (3/4)*c1y+(p1y+p3y)/8
c1x=c2xとc1y=c2yで解決される
c1x = c2x = -(p1x-8*p2x+p3x)/6
c1y = c2y = -(p1y-8*p2y+p3y)/6
ポイントに関して使用する最終的なベジェ方程式を与える(p1x,p1y)、(p2x,p2y)および(p3x,p3y):
x(t) = (1-t)^3 * [p1x]
+ 3*t*(1-t)^2 * [-(p1x-8*p2x+p3x)/6]
+ 3*t^2*(1-t) * [-(p1x-8*p2x+p3x)/6]
+ t^3 * [p3x]
y(t) = (1-t)^3 * [p1y]
+ 3*t*(1-t)^2 * [-(p1y-8*p2y+p3y)/6]
+ 3*t^2*(1-t) * [-(p1y-8*p2y+p3y)/6]
+ t^3 * [p3y]
概要
4 つのコントロール ポイントを試す
( p1x, p1y )( -(p1x-8*p2x+p3x)/6, -(p1y-8*p2y+p3y)/6 )( -(p1x-8*p2x+p3x)/6, -(p1y-8*p2y+p3y)/6 )( p3x, p3y )p1=(0,0)、 、p2=(2,2)で作成した例を次に示しp3=(4,-1)ます。以下のコントロールポイントを計算しました
( 0, 0 )( 2, 17/6 )( 2, 17/6 )( 4, -1)以下に結果を示します。

エルミートスプラインが必要なようです。