在椭圆周长上找到一个点,该点位于具有中心点,高度和宽度的矩形内?

时间:2010-05-06 12:52:15

标签: .net math geometry ellipse

我在.NET中有一个矩形,我在其中绘制一个椭圆。

我知道那个矩形的宽度,高度和中心点。

当然,矩形的中心点也是椭圆的中心点。

我知道如何计算圆上的点,但我对椭圆没有任何线索。

我有那些参数和一个角度,我需要椭圆上的点,有人可以发布公式吗?

我在某处看到你需要计算2个半径的2个点,半径之和将固定,它们的大小也会相应变化。

我不知道该怎么做,我只有矩形的高度,宽度和中心点,当然还有我希望找到的角度。

感谢您的帮助 施洛米

1 个答案:

答案 0 :(得分:13)

您可以使用canonical form in polar coordinates解决问题,其中矩形的宽度和高度分别为 w h

alt text

alt text

其中 t 是以弧度表示的角度, a w / 2 b H / 2

因此要绘制椭圆,您只需要将 t 0 变为 360 度(以弧度为单位,这样就是 > 0 2pi )并且取决于你如何分隔 t ,你得到椭圆上的点。

由于矩形不在原点居中,因此您必须将其偏移到矩形中心的坐标,例如(C x ,C y

const double C_x = 10, C_y = 20, w = 40, h = 50;
for(double t = 0; t <=2*pi; t+=0.01)
{
   double X = C_x+(w/2)*cos(t);
   double Y = C_y+(h/2)*sin(t);
   // Do what you want with X & Y here 
}