UnityEditor.HandleUtility.ProjectPointLine C# (CSharp) Method

ProjectPointLine() public static method

Project point onto a line.

public static ProjectPointLine ( Vector3 point, Vector3 lineStart, Vector3 lineEnd ) : Vector3
point Vector3
lineStart Vector3
lineEnd Vector3
return Vector3
        public static Vector3 ProjectPointLine(Vector3 point, Vector3 lineStart, Vector3 lineEnd)
        {
            Vector3 rhs = point - lineStart;
            Vector3 vector2 = lineEnd - lineStart;
            float magnitude = vector2.magnitude;
            Vector3 lhs = vector2;
            if (magnitude > 1E-06f)
            {
                lhs = (Vector3) (lhs / magnitude);
            }
            float num2 = Mathf.Clamp(Vector3.Dot(lhs, rhs), 0f, magnitude);
            return (lineStart + ((Vector3) (lhs * num2)));
        }

Usage Example

示例#1
0
		public static float DistancePointLine(Vector3 point, Vector3 lineStart, Vector3 lineEnd)
		{
			return Vector3.Magnitude(HandleUtility.ProjectPointLine(point, lineStart, lineEnd) - point);
		}