public int CompareTo(object obj) { int result = 0; FormLine formLine = obj as FormLine; if (IsTransverseLine == formLine.IsTransverseLine) { if (IsTransverseLine) { result = Compare(StartPoint.y, formLine.StartPoint.y); if (result == 0) { result = Compare(StartPoint.x, formLine.StartPoint.x); if (result == 0) { result = Compare(EndPoint.x, formLine.EndPoint.x); } } } else { result = Compare(EndPoint.x, formLine.EndPoint.x); if (result == 0) { result = Compare(formLine.EndPoint.y, EndPoint.y); if (result == 0) { result = Compare(formLine.StartPoint.y, StartPoint.y); } } } } return(result); }
public double GetDistanceOfNearestExtremePoints(FormLine formLine) { List <Point> extremePoints = new List <Point> { StartPoint, EndPoint, formLine.StartPoint, formLine.EndPoint }; List <double> axisValues = IsTransverseLine?extremePoints.Select(point => point.x).ToList(): extremePoints.Select(point => point.y).ToList(); double distance = axisValues.Max() - axisValues.Min() - Length - formLine.Length; return(distance < 0 ? 0 : distance); }
public double GetDistance(FormLine formLine) { if (IsTransverseLine != formLine.IsTransverseLine) { return(0); } double curValue = IsTransverseLine?StartPoint.y:StartPoint.x; double otherValue = IsTransverseLine?formLine.StartPoint.y:formLine.StartPoint.x; double distance = Math.Abs(curValue - otherValue); return(distance); }
public void MergeLine(FormLine formLine) { List <Point> extremePoints = new List <Point> { StartPoint, EndPoint, formLine.StartPoint, formLine.EndPoint }; List <double> axisValues = IsTransverseLine ? extremePoints.Select(point => point.x).ToList() : extremePoints.Select(point => point.y).ToList(); if (IsTransverseLine) { StartPoint.x = axisValues.Min(); EndPoint.x = axisValues.Max(); } else { StartPoint.y = axisValues.Min(); EndPoint.y = axisValues.Max(); } }
public static bool ContainFormLine(this Rect rect, FormLine formLine) { bool isContain = true; try { Point centerPoint = formLine.CenterPoint; if (!rect.Contains(centerPoint.x, centerPoint.y)) { isContain = false; } } catch (Exception ex) { string err = ex.ToString(); throw ex; } return(isContain); }