/// <summary> /// Calculate minimum angle between two lines measured in [0, 90] degrees range. /// </summary> /// /// <param name="a1">A point on the first line.</param> /// <param name="a2">Another point on the first line.</param> /// <param name="b1">A point on the second line.</param> /// <param name="b2">Another point on the second line.</param> /// /// <returns>Returns minimum angle between two lines.</returns> /// /// <remarks><para><note>It is preferred to use <see cref="Line.GetAngleBetweenLines"/> if it is required to calculate angle /// multiple times for one of the lines.</note></para></remarks> /// /// <exception cref="ArgumentException"><paramref name="a1"/> and <paramref name="a2"/> are the same, /// -OR- <paramref name="b1"/> and <paramref name="b2"/> are the same.</exception> /// public static float GetAngleBetweenLines(Point a1, Point a2, Point b1, Point b2) { var line1 = Line.FromPoints(a1, a2); return(line1.GetAngleBetweenLines(Line.FromPoints(b1, b2))); }
/// <summary> /// Initializes a new instance of the <see cref="LineSegment"/> class. /// </summary> /// /// <param name="start">Segment's start point.</param> /// <param name="end">Segment's end point.</param> /// /// <exception cref="ArgumentException">Thrown if the two points are the same.</exception> /// public LineSegment(Point start, Point end) { this.line = Line.FromPoints(start, end); this.start = start; this.end = end; }