0

2 つの 3D ポイント A と BI があり、次のようなパラメトリック方程式を想定しています。

x = Ax + (Bx*t)
y = Ay + (By*t)
z = Az + (Bz*t)

したがって、これは次のように洗練できます。

x = Ax + (Bx * ((y - Ay)/By));

正しい。これを考えると、高さ0のポイント(AB上)の座標が何であるかを知りたいです。

だから私は今これを行います:

float y = 0;
float t = ((y - Ay) / By)
float x = Ax + (Bx * t);
float z = Az + (Bz * t);

これには数学的に何か問題がありますか?(私のコードは、これで起こるべきことをしていません)

ありがとう!

PS: この質問とプログラミングとの関連性: ゲーム エンジンでポイント (この場合は視錐台の角) を y = 0 の xz 平面などの平面に投影するとき、この数学的問題は私のゲーム プログラミングと一致します。

4

2 に答える 2

2

私なら次のように書きます。

x = A*(1-t) + B*t

そうx(0) = Aそしてx(1) = B。このように書くと仮定し0 <= t <= +1ます。

それについて考える別の方法は、 と仮定すること-1 <= t <= +1です。そのようにすると、形状関数は次のようになります。

x = A*(1-t)/2.0 + B*(1+t)/2.0

もう一度。x(-1) = A_x(+1) = B

また、高階関数に一般化するのは簡単です。

x(t) = A*t(t-1)/2 + C*(1-t^2) + B*t(t+1)/2

だからx(0) = A、、。x(0.5) = C_x(1) = B

于 2013-09-20T09:25:02.050 に答える
1

パラメータ化が間違っていると思います:

x = Ax + (Bx*t)
...

ただし、次のようにする必要があります。

x = Ax + ((Bx-Ax)*t)
...
于 2013-09-20T09:03:47.163 に答える