コード例 #1
0
        /// <summary>
        /// 判斷兩線段是否同向
        /// </summary>
        /// <param name="line1"></param>
        /// <param name="line2"></param>
        /// <param name="distance"></param>
        /// <returns></returns>
        private bool IsSameDirection(LINE line1, LINE line2, ref double distance)
        {
            distance = -1;
            XYZ  Dir_1           = line1.GetDirection();
            XYZ  Dir_2           = line2.GetDirection();
            bool isSameDirection = IsSamePoint(Dir_1, Dir_2);

            if (!isSameDirection)
            {
                return(false);
            }

            /// 若端點重疊則回傳false
            if (IsSamePoint(line1.GetStartPoint(), line2.GetStartPoint()) ||
                IsSamePoint(line1.GetEndPoint(), line2.GetEndPoint()) ||
                IsSamePoint(line1.GetStartPoint(), line2.GetEndPoint()) ||
                IsSamePoint(line1.GetEndPoint(), line2.GetStartPoint()))
            {
                return(false);
            }

            /// 判斷是否在同一直線上 if == 0
            distance = Math.Round(line1.GetDistanceFromPoint(line2.GetStartPoint()), IG_POINT);

            return(true);
        }