圆锥曲线标准形式和齐次式(一般式)之间的参数转换的推导与结论 您所在的位置:网站首页 圆的一般式变标准式 圆锥曲线标准形式和齐次式(一般式)之间的参数转换的推导与结论

圆锥曲线标准形式和齐次式(一般式)之间的参数转换的推导与结论

2024-06-19 09:48| 来源: 网络整理| 查看: 265

        圆锥曲线齐次式(homogeneous form)是Ax^{2}+Bxy+Cy^{2}+Dx+Ey+F=0,所有系数乘上非0常数k后等式仍然成立。

坐标转换

        圆锥曲线标准形式的x轴与长半轴重合,y轴与短半轴重合。考虑圆锥曲线有倾斜的情况,其中心点坐标为(x_{0},y_{0}),长半轴与 x 轴的夹角为 θ,则点(x,y)对应到标准形式坐标系下为点((x-x_0)\cos \theta +(y-y_0)\sin \theta,-(x-x_0)\sin \theta +(y-y_0)\cos \theta ),这个坐标转换是后面所有推导的前置条件。

椭圆标准形式和齐次式之间的参数转换

        中心点坐标为(x_{0},y_{0}),长半轴与 x 轴的夹角为 θ的椭圆标准方程为:

\frac{\begin{bmatrix} (x-x_0)\cos \theta +(y-y_0)\sin \theta \end{bmatrix}^2}{a^2}+\frac{\begin{bmatrix} -(x-x_0)\sin \theta +(y-y_0)\cos \theta \end{bmatrix}^2}{b^2}=1

        展开后与齐次式做对比,可得

\left\{\begin{matrix} a^2\sin ^2\theta +b^2\cos^2 \theta=kA,(k\neq 0) \\ 2(b^2-a^2)\sin \theta \cos \theta =kB\\ b^2\sin ^2\theta+a^2\cos ^2\theta =kC \\ 2(a^2-b^2)\sin \theta \cos\theta y_0-2(a^2\sin^2 \theta +b^2\cos ^2\theta) x_0=kD\\ 2(a^2-b^2)\sin \theta \cos \theta x_0-2(a^2\cos ^2\theta +b^2\sin ^2 \theta )y_0=kE\\ a^2(\sin ^2\theta x_0 ^2+\cos ^2\theta y_0^2-2\sin \cos \theta x_0y_0)+b^2(\cos ^2\theta x_0^2+\sin ^2\theta y_0^2+2\sin \theta \cos\theta x_0y_0)-a^2b^2 =kF\end{matrix}\right.

        利用前三式对后三式进行转化,可得\left\{\begin{matrix} a^2\sin ^2\theta +b^2\cos^2 \theta=kA,(k\neq 0) \\ 2(b^2-a^2)\sin \theta \cos \theta =kB\\ b^2\sin ^2\theta+a^2\cos ^2\theta =kC \\ -2Ax_0-By_0=D\\ -2Cy_0-Bx_0=E\\ k(Ax_0^2+Bx_0y_0+Cy_0^2)-a^2b^2=kF\end{matrix}\right.

齐次式到标准形式的参数转换

        利用D、E相关的两个等式解得\left\{\begin{matrix} x_0=\frac{BE-2CD}{4AC-B^2}\\ y_0=\frac{BD-2AE}{4AC-B^2} \end{matrix}\right.

        前三式推得\tan 2\theta =\frac{B}{A-C},而\tan 2\theta =\frac{2\tan \theta }{1-\tan ^2\theta },因此B\tan^2 \theta+2(A-C)\tan \theta-B=0,解得\theta=\arctan \frac{C-A\pm \sqrt {(A-C)^2+B^2}}{B}

        进一步分析可知\arctan \frac{C-A- \sqrt {(A-C)^2+B^2}}{B}才是长半轴对应的倾角(\arctan \frac{C-A+ \sqrt {(A-C)^2+B^2}}{B}是短半轴与x轴的夹角)

        将x0,y0,\theta代入方程组,得到\left\{\begin{matrix} a^2+b^2=k(A+C)\\ b^2-a^2=-k\sqrt {(A-C)^2+B^2}\\ a^2b^2=k(\frac{AE^2-BDE+CD^2}{4AC-B^2}-F) \end{matrix}\right.

        综上,最终结果为\left\{\begin{matrix} a=\sqrt{\frac{2(\frac{AE^2-BDE+CD^2}{4AC-B^2}-F)}{A+C-\sqrt{(A-C)^2+B^2}}}\\ b=\sqrt{\frac{2(\frac{AE^2-BDE+CD^2}{4AC-B^2}-F)}{A+C+\sqrt{(A-C)^2+B^2}}}\\ \theta=atan2(C-A- \sqrt {(A-C)^2+B^2},B)\\ x_0=\frac{BE-2CD}{4AC-B^2}\\ y_0=\frac{BD-2AE}{4AC-B^2} \end{matrix}\right.

标准形式到齐次式的参数转换

        同样可得\left\{\begin{matrix} a^2\sin ^2\theta +b^2\cos^2 \theta=kA,(k\neq 0) \\ 2(b^2-a^2)\sin \theta \cos \theta =kB\\ b^2\sin ^2\theta+a^2\cos ^2\theta =kC \\ -2Ax_0-By_0=D\\ -2Cy_0-Bx_0=E\\ k(Ax_0^2+Bx_0y_0+Cy_0^2)-a^2b^2=kF\end{matrix}\right.,取k=1直接可解出\left\{\begin{matrix} A=a^2\sin^2\theta+b^2\cos^2\theta\\ B=2(b^2-a^2)\sin\theta\cos\theta\\ C=a^2\cos^2\theta+b^2\sin^2\theta\\ D=-2Ax_0-By_0\\ E=-2Cy_0-Bx_0\\ F=-\frac{Dx_0+Ey_0}{2}-a^2b^2 \end{matrix}\right.

        编程实践上一般取k=a^2b^2,此时\left\{\begin{matrix} A=\frac{\sin^2\theta}{b^2}+\frac{\cos^2\theta}{a^2}\\ B=2(\frac{1}{a^2}-\frac{1}{b^2})\sin\theta\cos\theta\\ C=\frac{\cos^2\theta}{b^2}+\frac{\sin^2\theta}{b^2}\\ D=-2Ax_0-By_0\\ E=-2Cy_0-Bx_0\\ F=-\frac{Dx_0+Ey_0}{2}-1 \end{matrix}\right.

双曲线标准形式和齐次式之间的参数转换

        中心点坐标为(x_{0},y_{0}),实半轴与 x 轴的夹角为 θ的双曲线标准方程为:\frac{\begin{bmatrix} (x-x_0)\cos \theta +(y-y_0)\sin \theta \end{bmatrix}^2}{a^2}-\frac{\begin{bmatrix} -(x-x_0)\sin \theta +(y-y_0)\cos \theta \end{bmatrix}^2}{b^2}=1

        展开后与齐次式做对比,可得\left\{\begin{matrix} b^2\cos^2 \theta-a^2\sin ^2\theta =kA,(k\neq 0) \\ 2(b^2+a^2)\sin \theta \cos \theta =kB\\ b^2\sin ^2\theta-a^2\cos ^2\theta =kC \\ 2(a^2\sin^2 \theta -b^2\cos ^2\theta) x_0-2(a^2+b^2)\sin \theta \cos\theta y_0=kD\\ 2(a^2\cos ^2\theta-b^2\sin ^2 \theta)y_0-2(a^2+b^2)\sin \theta \cos \theta x_0=kE\\ b^2(\cos ^2\theta x_0^2+\sin ^2\theta y_0^2+2\sin \theta \cos\theta x_0y_0)-a^2(\sin ^2\theta x_0 ^2+\cos ^2\theta y_0^2-2\sin \cos \theta x_0y_0)-a^2b^2=kF\end{matrix}\right.

        利用前三式对后三式进行转化,可得\left\{\begin{matrix} b^2\cos^2 \theta-a^2\sin ^2\theta =kA,(k\neq 0) \\ 2(b^2+a^2)\sin \theta \cos \theta =kB\\ b^2\sin ^2\theta-a^2\cos ^2\theta =kC \\ -2Ax_0-By_0=D\\ -2Cy_0-Bx_0=E\\ k(Ax_0^2+Bx_0y_0+Cy_0^2)-a^2b^2=kF\end{matrix}\right.

齐次式到标准形式的参数转换

        同椭圆齐次式到标准形式的参数转换推导,可得\left\{\begin{matrix} x_0=\frac{BE-2CD}{4AC-B^2}\\ y_0=\frac{BD-2AE}{4AC-B^2}\\ \theta=\arctan \frac{C-A\pm \sqrt {(A-C)^2+B^2}}{B} \end{matrix}\right.

        进一步分析可知\arctan \frac{C-A+ \sqrt {(A-C)^2+B^2}}{B}才是实半轴对应的倾角(\arctan \frac{C-A- \sqrt {(A-C)^2+B^2}}{B}是虚半轴与x轴的夹角)

        将x0,y0,\theta代入方程组,得到\left\{\begin{matrix} b^2+a^2=k\sqrt {(A-C)^2+B^2}\\ b^2-a^2=k(A+C)\\ a^2b^2=k(\frac{AE^2-BDE+CD^2}{4AC-B^2}-F) \end{matrix}\right.

        综上,最终结果为\left\{\begin{matrix} a=\sqrt{\frac{2(\frac{AE^2-BDE+CD^2}{4AC-B^2}-F)}{\sqrt{(A-C)^2+B^2}+A+C}}\\ b=\sqrt{\frac{2(\frac{AE^2-BDE+CD^2}{4AC-B^2}-F)}{\sqrt{(A-C)^2+B^2}-A-C}}\\ \theta=atan2 (C-A+ \sqrt {(A-C)^2+B^2},B)\\ x_0=\frac{BE-2CD}{4AC-B^2}\\ y_0=\frac{BD-2AE}{4AC-B^2} \end{matrix}\right.

标准形式到齐次式的参数转换

        同样可得\left\{\begin{matrix} b^2\cos^2 \theta-a^2\sin ^2\theta =kA,(k\neq 0) \\ 2(b^2+a^2)\sin \theta \cos \theta =kB\\ b^2\sin ^2\theta-a^2\cos ^2\theta =kC \\ -2Ax_0-By_0=D\\ -2Cy_0-Bx_0=E\\ k(Ax_0^2+Bx_0y_0+Cy_0^2)-a^2b^2=kF\end{matrix}\right.,取k=1直接可解出\left\{\begin{matrix} A=b^2\cos^2 \theta-a^2\sin ^2\\ B=2(b^2+a^2)\sin \theta \cos \theta\\ C=b^2\sin ^2\theta-a^2\cos ^2\theta\\ D=-2Ax_0-By_0\\ E=-2Cy_0-Bx_0\\ F=-\frac{Dx_0+Ey_0}{2}-a^2b^2 \end{matrix}\right.

        编程实践上一般取k=a^2b^2,此时\left\{\begin{matrix} A=\frac{\cos^2\theta}{a^2}-\frac{\sin^2\theta}{b^2}\\ B=2(\frac{1}{a^2}+\frac{1}{b^2})\sin\theta\cos\theta\\ C=\frac{\sin^2\theta}{a^2}-\frac{\cos^2\theta}{b^2}\\ D=-2Ax_0-By_0\\ E=-2Cy_0-Bx_0\\ F=-\frac{Dx_0+Ey_0}{2}-1 \end{matrix}\right.

抛物线标准形式和齐次式之间的参数转换

        顶点点坐标为(x_{0},y_{0}),焦距为f,对称轴与 x 轴的夹角为 θ的抛物线标准方程为:

\begin{bmatrix} -(x-x_0)\sin \theta +(y-y_0)\cos \theta \end{bmatrix}^2=4f\begin{bmatrix} (x-x_0)\cos \theta +(y-y_0)\sin \theta \end{bmatrix}

        展开后与齐次式做对比,可得\left\{\begin{matrix} \sin ^2\theta =kA,(k\neq 0) \\ -2\sin \theta \cos \theta =kB\\ \cos ^2\theta =kC \\ -2\sin^2\theta x_0+2\sin \theta \cos\theta y_0-4f\cos\theta=kD\\ -2\cos^2\theta y_0+2\sin \theta \cos\theta x_0-4f\sin\theta=kE\\ \sin^2\theta x_0^2 - 2\sin\theta\cos\theta x_0y_0 + \cos^2y_0^2+4f\cos\theta x_0 + 4f\sin\theta y_0=kF\end{matrix}\right.

        利用前三式对后三式进行转化,可得\left\{\begin{matrix} \sin ^2\theta =kA,(k\neq 0) \\ -2\sin \theta \cos \theta =kB\\ \cos ^2\theta =kC \\ -2Ax_0-By_0-4f\cos\theta=kD\\ -2Cy_0-Bx_0-4f\sin\theta=kE\\ Ax_0^2 + Bx_0y_0 + Cy_0^2+4f\cos\theta x_0 + 4f\sin\theta y_0=kF\end{matrix}\right.

齐次式到标准形式的参数转换

        由前三式得\left\{\begin{matrix} \theta=\arctan -\frac{2A}{B}\\ k=\frac{1}{A+C} \end{matrix}\right.,利用抛物线齐次式的性质B^2=4AC可将\left\{\begin{matrix} -2Ax_0-By_0-4f\cos\theta=kD\\ -2Cy_0-Bx_0-4f\sin\theta=kE\end{matrix}\right.x_0y_0都消去,得到f=\frac{BE-2CD}{(A+C)(8C\cos\theta-4B\sin\theta)},这时候如果f0,则需要将\theta加上180度,使得f0

        记D_1=kD+4f\cos\thetaE_1=kE+4f\sin\theta\left\{\begin{matrix} Ax_0=-\frac{By_0+D1}{2}\rightarrow Ax_0^2 = -\frac{Bx_0y_0}{2}-\frac{D1x_0}{2}\\ Cy_0=-\frac{Bx_0+E1}{2}\rightarrow Cy_0^2=-\frac{Bx_0y_0}{2}-\frac{E_1y_0}{2} \end{matrix}\right.,可将Ax_0^2 + Bx_0y_0 + Cy_0^2+4f\cos\theta x_0 + 4f\sin\theta y_0=kF的二次项都消去,得到(4f\cos\theta -\tfrac{D_1}{2})x_0 + (4f\sin\theta-\frac{E1}{2})y_0=kF

        解方程组\left\{\begin{matrix} -2Ax_0-By_0=D1\\(4f\cos\theta -\tfrac{D_1}{2})x_0 + (4f\sin\theta-\frac{E1}{2})y_0=kF \end{matrix}\right.可得\left\{\begin{matrix} x_0=\frac{k(BF+D_1(4f\sin\theta-\frac{E_1}{2}))}{B(4f\cos\theta-\frac{D_1}{2})-2A(4f\sin\theta-\frac{E_1}{2})}\\ y_0=-\frac{2Ax_0+D_1}{B}\end{matrix}\right.

标准形式到齐次式的参数转换

        同样可得\left\{\begin{matrix} \sin ^2\theta =kA,(k\neq 0) \\ -2\sin \theta \cos \theta =kB\\ \cos ^2\theta =kC \\ -2Ax_0-By_0-4f\cos\theta=kD\\ -2Cy_0-Bx_0-4f\sin\theta=kE\\ Ax_0^2 + Bx_0y_0 + Cy_0^2+4f\cos\theta x_0 + 4f\sin\theta y_0=kF\end{matrix}\right.,取k=1直接可解出\left\{\begin{matrix} A=sin ^2\theta\\ B=-2\sin \theta \cos \theta\\ C=\cos ^2\theta\\ D=-2Ax_0-By_0-4f\cos\theta\\ E=-2Cy_0-Bx_0-4f\sin\theta\\ F=Ax_0^2+Bx_0y_0 + Cy_0^2+4f\cos\theta x_0 + 4f\sin\theta y_0 \end{matrix}\right.

C++编程实践

        这里给出圆锥曲线标准形式和齐次式之间的参数转换的C++代码

#include #define DBL long double void ellipse_homogeneous(DBL a, DBL b, DBL t, DBL x, DBL y, DBL (&c)[6]) { // 根据椭圆的长短半轴、倾斜角度和中心坐标计算椭圆一般式的系数 DBL si = sin(t), co = cos(t); c[0] = si/b*si/b + co/a*co/a; c[1] = 2.*(1./a/a - 1./b/b)*si*co; c[2] = co/b*co/b + si/a*si/a; c[3] = -2.*c[0]*x - c[1]*y; c[4] = -2.*c[2]*y - c[1]*x; c[5] = -(c[3]*x + c[4]*y)/2. - 1.; } void ellipse_params(DBL (&c)[6], DBL &a, DBL &b, DBL &t, DBL &x, DBL &y) { // 根据椭圆一般式的系数计算长短半轴、倾斜角度和中心坐标 if (c[0] < 0) for (int i=0; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有