keisoku

空間2直線間の距離 計算

3次元空間にある2直線の最短距離を、各直線の通過点と方向ベクトルから計算。ねじれ・平行・交差を判定し、最近接点も求めます。

入力

3次元空間の2直線について、各直線の通過点と方向ベクトルを入力すると、2直線間の最短距離を計算します。ねじれ・平行・交差の位置関係と最近接点も表示します。

直線1 の通過点 P1

直線が通る1点の座標です。

直線1 の方向ベクトル d1

直線の向きを表すベクトルです。ゼロベクトルは指定できません。


直線2 の通過点 P2

直線が通る1点の座標です。

直線2 の方向ベクトル d2

直線の向きを表すベクトルです。ゼロベクトルは指定できません。

計算結果

2直線間の最短距離

1

位置関係

ねじれの位置

外積の大きさ

1

直線1 上の最近接点

(0, 0, 0)

直線2 上の最近接点

(0, 1, 0)


外積 n = d1 x d2 を用い、ねじれ・交差では距離 = |w · n| / |n|、平行では距離 = |w x d1| / |d1| で計算します(w = P1 - P2)。

計算方法・使い方

  • 各直線は通過点 P と方向ベクトル d で表します。直線 1 は P1 と d1、直線 2 は P2 と d2 です。
  • 方向ベクトルの外積 n = d1 x d2 を求めます。n の大きさが 0 でなければ 2 直線はねじれの位置か交差しています。
  • ねじれ・交差の距離は、点差 w = P1 - P2 を用いて |w · n| / |n| で求めます。
  • 外積 n がゼロのとき 2 直線は平行です。このとき距離は点 P2 と直線 1 の距離 |w x d1| / |d1| で求めます。
  • 平行で距離が 0 なら 2 直線は同一直線です。ねじれ・交差では各直線上の最近接点も表示します。

お客様の声

このツールを使った感想をお聞かせください。

レビューを投稿する

  1. ホーム
  2. 空間2直線間の距離 計算