Exemplo n.º 1
0
 public Angle AngleBetweenPoints(Vector CenterPoint)
 {
     Vector endPointToCenter = new LineSegment(EndingPos, CenterPoint).TranlsateToVector();
     Vector incomingVector = new LineSegment(EndingPos, StartingPos).TranlsateToVector();
     if ((endPointToCenter.Magnitude() * incomingVector.Magnitude() == 0))
         throw new DivideByZeroException();
     double cosineOfTheAngle = (incomingVector * endPointToCenter) / (endPointToCenter.Magnitude() * incomingVector.Magnitude());
     if (cosineOfTheAngle > 1 || cosineOfTheAngle < -1)
         throw new Exception("Out of range of  acos");
     Angle angleToReturn = new Angle(Math.Acos(cosineOfTheAngle));
     return angleToReturn;
 }
 internal Common.LineSegment GetReturnLine(LineSegment incoming)
 {
     if (overrideMagnitude == double.MinValue)
         return new LineSegment(incoming.EndingPos, ReturnAngle, incoming.Magnitude());
     else
         return new LineSegment(incoming.EndingPos, ReturnAngle, overrideMagnitude); ;
 }