3次元空間で点Pから最も近い線分AB上に存在する点を求める方法をメモ。
[ 方法 ]
using System.Collections; using System.Collections.Generic; using UnityEngine; public class script : MonoBehaviour { // 点Pから最も近い線分AB上に存在する点を求める関数 private Vector3 ClosestPointOnLineSegment(Vector3 a, Vector3 b, Vector3 p) { Vector3 vecAB = b - a; Vector3 vecAP = p - a; float mag = vecAB.magnitude; Vector3 unitVecAB = vecAB.normalized; float dot = Vector3.Dot(vecAP, unitVecAB); dot = Mathf.Clamp(dot, 0f, mag); return a + unitVecAB * dot; } }