我该如何计算椭圆周长上的一个点?

3

我想在J2ME中绘制椭圆曲线上的一个点。

我有X、Y、宽度、高度和t的值。

XY是椭圆相对于Canvas的位置,t是相对于椭圆中心的角度(我有一个问题的图像表示,但不幸的是博客不允许插入讨论 :))

int ePX = (X + width)+ (int) (width * Math.cos(Math.toRadians(t)));
int ePY = (Y + height)+ (int) (height * -Math.sin(Math.toRadians(t)));

这个方程式正确吗?或者说对于椭圆来说,我们需要进行更多的计算吗?
1个回答

12
如果 (X,Y) 是椭圆的中心,宽度和高度分别为两个轴,则方程应该是:
int ePX = X + (int) (width  * Math.cos(Math.toRadians(t)));
int ePY = Y + (int) (height * Math.sin(Math.toRadians(t)));

如果您拥有所有的 t 来绘制整个椭圆,则不必对 Math.sin 进行 -1 的乘法运算。

2
@Nguyen:抱歉,我认为你错了。据我所知,( aCos( \th ), bSin( \th ) ) 是椭圆的参数化形式,当 ( a == b ) 时,它变成一个圆。这里 a := widthb := height - Parakram Majumdar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接