我在.NET中有一个矩形,我在其中绘制一个椭圆。
我知道那个矩形的宽度,高度和中心点。
当然,矩形的中心点也是椭圆的中心点。
我知道如何计算圆上的点,但我对椭圆没有任何线索。
我有那些参数和一个角度,我需要椭圆上的点,有人可以发布公式吗?
我在某处看到你需要计算2个半径的2个点,半径之和将固定,它们的大小也会相应变化。
我不知道该怎么做,我只有矩形的高度,宽度和中心点,当然还有我希望找到的角度。
感谢您的帮助 施洛米
答案 0 :(得分:13)
您可以使用canonical form in polar coordinates解决问题,其中矩形的宽度和高度分别为 w 和 h 。
其中 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
}