9

wpf でいくつかの 3D 処理を行う - 単純なテストを使用して、すべてが機能しているかどうかを確認したい (曲線に移動する前)。

基本的な質問は、2 つのポイント x1,y1,z1 と x2,y2,z2 が与えられ、ポイント間の距離を計算しました。しかし、その線上にある距離にある別の点 (x3、y3、z3) の座標を見つけるにはどうすればよいでしょうか?

つまり、私の線が -50,0,0 と 50,0,0 の間で 100 の長さである場合、線に沿った 100 * 0.1 の点の座標は何ですか?

これは簡単な式だと思いますが、まだ見つけていません....

4

4 に答える 4

15

0 と 1 の間の各 p に対して、これは線分上の点を与えます:

(x1, y1, z1) + p * ((x2, y2, z2) - (x1, y1, z1))
于 2010-05-21T22:57:13.300 に答える
7

これは数学と関係がありますが、わかりました。与えPられQた 2 つの点とX、探している点を と とします。

P + r(Q - P) = X

r は係数を示します。

if 0 < r < 1: ポイント x は 2 点間の線上になります。

それでおしまい!

編集:

P(p1/p2/p3) から所定の距離 d にある点を見つけるには:

d² / euclidian_square_distance(P,Q) = r

上記の式に r を挿入すると、ポイントが得られます。:)

PS: ところで: P-Q = (Px - Qx, Py - Qy, Pz - Qz)... あなたはすでにそれを知っていたに違いない :)

于 2010-05-21T22:55:45.507 に答える
1

t0 から 1 まで変化させます。以下を使用します。

(x3, y3, z3) = (1-t)*(x1, y1, z1) + t*(x2, y2, z2)

t=0 のとき、最初のポイントを取得します。t=1 の場合、秒を取得します。

この方法は線形補間と呼ばれます。

于 2010-05-21T22:59:50.673 に答える
0

3Dの点を結ぶ線は、次の式で与えられます。

(x-x1)/(x2-x1)=(y-y1)/(y2-y1)=(z-z1)/(z2-z1)

x1、y1、z1、x2、y2、z2の値があります。これにより、直線の方程式が得られます。

別の方程式は

((x-x1)^ 2 +(y-y1)^ 2 +(z-z1)^ 2)^(1/2)=距離

2つの方程式を解いて、ポイントの値を取得します。

于 2010-05-21T23:05:49.090 に答える