2017-11-16 14 views
-5

2点間の距離(p1 =(x1、y1)とp2 =(x2、y2))を返す必要がありますが、p2の値がp1より小さい場合は負の距離を返します。2点間の距離/変位を取得

したがって、この例が真実であること:距離が負にすることはできませんよう https://i.imgur.com/ZbN8CkG.png

√((X1-X2)²+(Y1-Y2)は²)は常に、正の値を返します。しかし、私が必要とするのは、移籍に似ています。

誰でも手助けできますか?

+2

これは数学であるため、このトピックをオフトピックとして閉じるように投票しています –

+0

その式で距離を取得してから「p2の値がp1よりも小さい場合は」を否定します。君は。 – Blorgbeard

+0

「p2の値が[sic] p1の値よりも小さい場合はどういう意味ですか?両方の値?それらのうちの1つだけ?これが距離計算とは別にチェックできるものなら(そのためには 'Math.hypot'を使うべきです)、そうしてください。 –

答えて

0

本当にベクトルがほしいと思うように聞こえます。大きさはです。大きさは2点間の距離です。方向は、開始点から終了点までベクトルを描画することによって決定されます。選択肢は任意です。

(0,0)から(5,0)までのベクトルは、(5,0)から(0.0)までの長さと同じ長さです。両方とも長さ5です。しかし、x方向の正の点;他の点は負のx方向に向いています。ベクトルの考え方はより一般的です。

2次元の直交座標では、ポイントp1 =(p1x、p1y)とp2 =(p2x、p2y)を持ちます。

P1からP2へのベクトルである:

p = (p2x-p1x)*i + (p2y-p1y)*j 

I =単位Xベクトル及びJ =単位Y-ベクター。

Pの大きさがP1からP2への単位ベクトルは、その大きさによってベクトルpを分割することにより得られる

pmag = sqrt((p2x-p1x)^2 + (p2y-p1y)^2) 

ある:Pと同じ方向に

p(unit) = (p2x-p1x)*i/pmag + (p2y-p1y)*j/pmag 

punit点それは大きさ1(したがって、「単位ベクトル」という名前)を有する。

0

最初のポイントのx値が大きい場合は、負でなければならない場合は、x1がx2より大きいかどうかを確認し、そうであれば結果に-1を掛けてください。 それは私が何かを逃していない限りです

関連する問題