tw26408.pp 427 B

123456789101112131415161718192021
  1. {$mode objfpc}
  2. program bugavx64;
  3. uses math;
  4. function EllipseRadialLength(Width, Height:Integer; EccentricAngle : Extended) : Extended;
  5. var
  6. a, b, R : Extended;
  7. begin
  8. a := Width div 2;
  9. b := Height div 2;
  10. R := Sqr(a)*Sqr(b);
  11. if R <> 0 then begin // tweak
  12. R := Sqrt(R / ((Sqr(b)*Sqr(Cos(DegToRad(EccentricAngle/16))))) +
  13. (Sqr(a)*Sqr(Sin(DegToRad(EccentricAngle/16)))));
  14. end;
  15. Result := R;
  16. end;
  17. begin
  18. end.