计算椭圆上坐标 分两步,求离心角和根据离心角求椭圆上坐标。
椭圆方程
椭圆方程是
a2x2+b2y2=(ax)2+(by)2=(cos(t))2+(sin(t))2=1
这个t就是离心角的角度。
求离心角
如下图,已知椭圆的角p,要求主离心角t。如下图,小圆为椭圆内切,大圆为椭圆外切。虚线除OE外,全为垂线。

根据椭圆方程,可知E的y坐标 Ey=b∗sint(t)=Ay
又有
tan(t)=BD/OD tan(p)=ED/OD
那么 tan(p)tan(t)=EDBD=ACBD=OCOD=ba
所以,tan(t)=tan(p)∗ba
求解t值时,用函数atan2(x,y),这样求出的值是[−π,π],使用atan得到的值在[−2π,2π]
根据离心角求椭圆上给定角度的坐标
根据椭圆公式,可得
x=a∗cos(t) y=b∗sin(t)
椭圆出现平移及旋转的情况
这种情况,需要先将椭圆旋转并平移到标准椭圆位置,计算完点坐标再反算回去。如下图

旋转后的椭圆坐标与标准椭圆坐标的对应关系如下所示公式:
(xy)=R∗((XY)−(XcYc))
其中 , R=(cos(γ)−sin(γ)sin(γ)cos(γ))
且 R−1=RT=(cos(γ)sin(γ)−sin(γ)cos(γ))
那么,旋转后的椭圆上点坐标公式为
(XY)=R−1∗(xy)+(XcYc)
最终,
X=cos(γ)∗x−sin(γ)∗y=cos(γ)∗a∗cos(t)−sin(γ)∗b∗sin(t)+XcY=sin(γ)∗x+cos(γ)∗y=sin(γ)∗a∗cos(t)+cos(γ)∗b∗sin(t)+Yc
参考:
网页1
网页2