我在.NET中有一个矩形,在其中绘制一个椭圆。
我知道该矩形的宽度、高度和中心点。
当然,矩形的中心点也是椭圆的中心点。
我知道如何计算圆上的点,但对于椭圆一无所知。
我有这些参数和一个角度,我需要在椭圆上找到该点,请问有人可以提供公式吗?
我看到有人说需要计算两个半径将会经过的两个点,这两个半径的和将保持不变,并且它们的大小也会相应地改变。
我不知道如何做到这一点,我只有矩形的高度、宽度和中心点以及我想要找到该点的角度。
感谢任何帮助,Shlomi
我在.NET中有一个矩形,在其中绘制一个椭圆。
我知道该矩形的宽度、高度和中心点。
当然,矩形的中心点也是椭圆的中心点。
我知道如何计算圆上的点,但对于椭圆一无所知。
我有这些参数和一个角度,我需要在椭圆上找到该点,请问有人可以提供公式吗?
我看到有人说需要计算两个半径将会经过的两个点,这两个半径的和将保持不变,并且它们的大小也会相应地改变。
我不知道如何做到这一点,我只有矩形的高度、宽度和中心点以及我想要找到该点的角度。
感谢任何帮助,Shlomi
您可以使用极坐标的标准形式来解决问题,其中矩形的宽度和高度分别为w和h。
其中t是弧度制下的角度,a是w/2,b是h/2
因此,要绘制椭圆,只需将t从0变化到360度(以弧度为单位,即0和2pi),并根据您如何分布t,您会得到椭圆上的点。
由于您的矩形不在原点处居中,因此您必须通过矩形中心的坐标进行偏移,例如(Cx,Cy)
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
}
t
并将其代入Y(t)
中。例如,如果a=1,b=1
且您有X=1
,则X=a*cos(t)
或1=1*cos(t)
,这意味着t=0
是一个解。因此,Y(t)=0
。 - Jacob