Added Ramanujan's formula for an approximation of the circumference of an
ellipse. I didn't end up using it in the ArcPath, but it will surely come in handy eventually. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1690 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: MathUtil.java,v 1.4 2002/05/17 21:13:03 mdb Exp $
|
// $Id: MathUtil.java,v 1.5 2002/09/17 04:00:09 mdb Exp $
|
||||||
|
|
||||||
package com.threerings.media.util;
|
package com.threerings.media.util;
|
||||||
|
|
||||||
@@ -45,4 +45,15 @@ public class MathUtil
|
|||||||
{
|
{
|
||||||
return lineToString(p1.x, p1.y, p2.x, p2.y);
|
return lineToString(p1.x, p1.y, p2.x, p2.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the approximate circumference of the ellipse defined by the
|
||||||
|
* specified minor and major axes. The formula used (due to Ramanujan,
|
||||||
|
* via a paper of his entitled "Modular Equations and Approximations
|
||||||
|
* to Pi"), is <code>Pi(3a + 3b - sqrt[(a+3b)(b+3a)])</code>.
|
||||||
|
*/
|
||||||
|
public static double ellipseCircum (double a, double b)
|
||||||
|
{
|
||||||
|
return Math.PI * (3*a + 3*b - Math.sqrt((a + 3*b) * (b + 3*a)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user