版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
圆上任意角度的点的坐标
如上图,给定圆心(Cx,Cy),半径为R, 求 θ \thetaθ对应的点的坐标? 此处 θ \thetaθ是相对于水平轴的角度。
显然我们可以使用极坐标转换来求:
{ p x = C x + R c o s ( θ ) p y = C y + R s i n ( θ ) \left\{\begin{matrix} px= Cx+Rcos(\theta) \\ py= Cy+Rsin(\theta) \end{matrix}\right.{px=Cx+Rcos(θ)py=Cy+Rsin(θ)
注意如果以上竖直坐标系向下,此时变为图像的坐标系,即
结果变成:
{ p x = C x + R c o s ( θ ) p y = C y − R s i n ( θ ) \left\{\begin{matrix} px= Cx+Rcos(\theta) \\ py= Cy-Rsin(\theta) \end{matrix}\right.{px=Cx+Rcos(θ)py=Cy−Rsin(θ)
仅仅是y变了。
椭圆上任意角度的点的坐标
首先我们先来考虑标准椭圆上任意角度的点的坐标,再进行推广。
已知主轴a(即椭圆箭头所指方向对应的轴),次轴b,求解与水平轴相交 θ \thetaθ对应的点的坐标?
{ x 2 a 2 + y 2 b 2 = 1 y x = tan ⁡ ( θ ) \left\{\begin{matrix} \frac{x^2}{a^2}+\frac{y^2}{b^2}&=&1 \\ \frac{y}{x}& =& \tan(\theta) \end{matrix}\right.{a2x2+b2y2xy==1tan(θ)
将上面的第二式带入第一式,可以求解得到:
x 2 = a 2 b 2 b 2 + a 2 tan ⁡ 2 ( θ ) x^2=\frac{a^2b^2}{b^2+a^2\tan^2(\theta)}x2=b2+a2tan2(θ)a2b2
这时我们考虑 θ \thetaθ的范围,可以得到:
(一)