/// <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); }