SebastianLague

Circumcentre + Circumradius

Jan 16th, 2016
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.66 KB | None | 0 0
  1.     Vector3 GetCircumCentre(Vector3 a, Vector3 b, Vector3 c) {
  2.         Vector3 p1 = (c - a).sqrMagnitude * Vector3.Cross (Vector3.Cross (c - a,b - a), b - a);
  3.         Vector3 p2 = (b - a).sqrMagnitude * Vector3.Cross (Vector3.Cross (b - a, c - a), c - a);
  4.         float div = 2 * Vector3.Cross (b - a, c - a).sqrMagnitude;
  5.         Vector3 centre = a - (p1 + p2) / div;
  6.         return centre;
  7.     }
  8.  
  9.     float GetRadius(Vector3 a, Vector3 b, Vector3 c) {
  10.         float lenA = Vector3.Distance (a, b);
  11.         float lenB = Vector3.Distance (b, c);
  12.         float lenC = Vector3.Distance (c, a);
  13.         float s = (lenA + lenB + lenC) * .5f;
  14.         return (lenA*lenB*lenC)/(4*Mathf.Sqrt(s*(lenA+lenB-s)*(lenA+lenC-s)*(lenB+lenC-s)));
  15.     }
Advertisement
Add Comment
Please, Sign In to add comment