LifeTally
線分上の最近点と線分までの距離
有限な線分上の最近点はどこにあり、指定した点からどれだけ離れていますか?
線分の端点 A、B と点 P を入力します。最近点 Q、A から B への位置、直線距離 P–Q を求めます。
線分と点の座標
A、B、P には同じ直交デカルト座標軸、同じ縮尺、共通の座標単位を使ってください。分数は a/b ではなく小数で入力します。端点の入力順は保持されます。垂直・水平の線分や、1 点に縮退した線分も使用できます。
見積もりの計算方法
d = B − A、u = P − A とします。端点が異なる場合、w = d·d > 0、t = min(1, max(0, (u·d)/w)) です。Q = A + t d、距離は √((Px − Qx)² + (Py − Qy)²) です。t = 0 は A、t = 1 は B、内部では 0 < t < 1 です。A + t d に沿う距離の二乗は、制約なしでは (u·d)/w で最小になる二次関数なので、t を [0,1] に制限すると有限な線分上での最小値が得られます。A = B の場合は Q = A とし、t = 0 を規約として選びます。距離には常に6個すべての座標が必要です。縮退していない線分では t、Q、位置の分類にもすべて必要です。端点の一致が既知なら、P が無効でも t = 0、Q、縮退の状態は既知のままです。入力エラーは表示され、距離は未確定です。受け入れた数値の正確な十進分数を用いて演算した後に最終丸めを行い、丸めた t や Q は再利用しません。
d = B − A; u = P − A; w = d · d
w > 0: t = min(1, max(0, (u · d) ÷ w))
Q = A + t d; |P − Q| = √((Px − Qx)² + (Py − Qy)²)
A = B: Q = A; t = 0対象は二次元ユークリッド平面上の1点と、両端を含む1本の有限な直線分だけです。端点の一致や線分上の点も有効で、線分上の点の距離はゼロです。無限直線、半直線、折れ線、曲線、3D物体、地理的位置や道路経路までの距離は求めません。グラフ、単位換算、測定の検証、不確かさの推定、物理的な適合性や安全性の保証はありません。受け入れた数値をゼロ近傍の許容差なしで正確に比較しますが、測定対象の性質を証明するものではありません。
CGAL:両端を含む平面上の線分と端点の一致 ↗OpenStax:内積とベクトルの射影 ↗
入力済みの例を確認
独自の例:A = (−2, 1)、B = (4, 1)、P = (1, 5)。d = (6, 0)、u = (3, 4)、u·d = 18、d·d = 36 なので、t = 0.5、Q = (1, 1) は線分の内部、P–Q = 4 座標単位です。数学の例として選んだ座標で、実測値や推奨寸法ではありません。
受け付けた入力値
- 端点 A:x 座標
- -2
- 端点 A:y 座標
- 1
- 端点 B:x 座標
- 4
- 端点 B:y 座標
- 1
- 点 P:x 座標
- 1
- 点 P:y 座標
- 5
次の作業へ
個別の演算には標準電卓を使ってください。幾何学的な意味を解釈する前に、端点の順序、意図した座標軸、単位の統一を確認してください。
標準電卓を開く →