【UnityC#】3次元空間で直線ABと点Pの距離を求める方法
3次元空間で直線ABと点Pの距離を求める方法をメモ。
[ 方法 ]
using System.Collections; using System.Collections.Generic; using UnityEngine; public class script : MonoBehaviour { // 点Pから最も近い直線AB上に存在する点を求める関数 private Vector3 ClosestPointOnStraightLine(Vector3 a, Vector3 b, Vector3 p) { Vector3 vecAB = b - a; Vector3 vecAP = p - a; Vector3 closestPos = a + Vector3.Project(vecAP, vecAB); return closestPos; } // 直線ABと点Pの距離を求める関数 private float DistBetweenPointAndStraightLine(Vector3 a, Vector3 b, Vector3 p) { Vector3 closestPoint = ClosestPointOnStraightLine(a, b, p); float dist = Vector3.Distance(closestPoint, p); return dist; } }