Unity 判断一个点是否在线段上

		/// <summary>
        /// 判断一个坐标点是否在“线段”上
        /// </summary>
        /// <param name="pos"></param>
        /// <param name="lineFrom"></param>
        /// <param name="lineTo"></param>
        /// <returns></returns>
        public static bool IsInLine(this Vector3 pos,Vector3 lineFrom,Vector3 lineTo) {
    
    
            Vector3 v1 = pos - lineFrom;
            Vector3 v2 = lineTo - lineFrom;
            float angle =Mathf.Abs(Vector3.Angle(v1.normalized,v2.normalized));
            float length_v1 = Vector3.SqrMagnitude(v1);
            float length_v2 = Vector3.SqrMagnitude(v2);
            return angle <= 0.0001f && length_v1 < length_v2;
        }

猜你喜欢

转载自blog.csdn.net/qq_26318597/article/details/129725296