Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Vector2 GetLinesCrossPoint(Vector2 A, Vector2 B, Vector2 C, Vector2 D)
- {
- var a1 = B.Y - A.Y;
- var b1 = A.X - B.X;
- var c1 = a1 * (A.X) + b1 * (A.Y);
- var a2 = D.Y - C.Y;
- var b2 = C.X - D.X;
- var c2 = a2 * (C.X) + b2 * (C.Y);
- var determinant = a1 * b2 - a2 * b1;
- if (determinant == 0)
- return new Vector2(float.NaN, float.NaN);
- else
- {
- var x = (b2 * c1 - b1 * c2) / determinant;
- var y = (a1 * c2 - a2 * c1) / determinant;
- return new Vector2(x, y);
- }
- }
- bool LineContainsPoint(Vector2 point, Vector2 A, Vector2 B)
- {
- var length = Vector2.Distance(A, B);
- var sum = Vector2.Distance(A, point) + Vector2.Distance(B, point);
- return sum.IsBetween(length - 0.01f, length + 0.01f);
- }
Advertisement
Add Comment
Please, Sign In to add comment