6 votos

Cuando usted sesgar una elipse, cómo se calcula el ángulo de rotación y las longitudes de eje nuevo

Estoy tratando de escribir un SVG programa de dibujo, y es necesario prestar sesgada elipses gira elipses con correctamente a calcular longitudes de eje. Esto muestra que el problema que estoy tratando de resolver:

enter image description here

El azul oscuro de puntos se calcula fácilmente a partir de la distorsión de la geometría. Sé el centro de la nueva elipse, pero no sé cómo calcular el ángulo de rotación de la nueva elipse y su nuevo eje de longitud. Hice esto por los ojos en un programa de dibujo, pero necesito hacer esto matemáticamente en mi código.

6voto

amd Puntos 2503

Factible, pero el resultado es un poco desordenado.

En primer lugar, observe que la foto de la transformación es equivalente a la corte que deja el centro de la elipse fijo seguido por una traducción. Las traducciones no afecta a la forma o la orientación de una elipse, por lo que podemos simplificar un poco las cosas por considerar una elipse en posición estándar y una cizalla que corrige el origen.

Una ecuación general de una elipse centrada en el origen es $Ax^2+Bxy+Cy^2=1$, que puede ser escrito en formato vectorial como $$\mathbf x^T\begin{bmatrix}A&\frac B2\\\frac B2&C\end{bmatrix}\mathbf x=1.$$ For an ellipse, the eigenvalues of this matrix are both positive. If $\lambda_1$ and $\lambda_2$ are these eigenvalues, with $\lambda_1\le\lambda_2$, then the semimajor and semiminor axis lengths of the ellipse are given by $a^2=1/\lambda_1$ and $b^2=1/\lambda_2$, respectively. The related eigenvalues point in the directions of these axes, so the rotation of the ellipse is given by the angle of the line defined by the eigenspace of $\lambda_1$. Solving for the eigenvalues, we get $$\lambda_{1,2}=\frac12\left(A+C\mp\sqrt{(A+C)^2+B^2-4AC}\right)\tag{1}$$ with associated eigenvectors $$\left[A-C\mp\sqrt{(A+C)^2+B^2-4AC},B\right]^T.\tag{2}$$ (Se puede comprobar que estos dos vectores son ortogonales.)

En este caso, partimos de la elipse $x^2/a^2+y^2/b^2=1$, o en formato vectorial $\mathbf x^T\mathbf Q\mathbf x=1$,$\mathbf Q=\operatorname{diag}(a^{-2},b^{-2})$. La ecuación de la transformada de la elipse se obtiene sustituyendo $\mathbf S^{-1}\mathbf x$ $\mathbf x$ donde $\mathbf S$ es la matriz de la transformación de cizallamiento:$$\mathbf S=\begin{bmatrix}1&\tan\beta\\0&1\end{bmatrix},$$ i.e., $(\mathbf S^{-1}\mathbf x)^T\mathbf Q(\mathbf S^{-1}\mathbf x)=\mathbf x^T((\mathbf S^{-1})^T\mathbf Q\mathbf S^{-1})\mathbf x=\mathbf x^T\mathbf Q'\mathbf x$. (Note that inverting $\mathbf S$ is a simple matter of replacing $\tan\beta$ with $-\tan\beta$.) Multiplying this out, we get $$\mathbf Q'=\begin{bmatrix}\frac1{a^2}&-{\tan\beta\over a^2}\\-{\tan\beta\over a^2}&\frac1{b^2}+{\tan^2\beta\over a^2}\end{bmatrix}.\tag{3}$$ Substitute these values for $Un$, $B$ and $C$ en las ecuaciones (1) y (2) para encontrar el semi-eje longitudes y la rotación de la transformación de la elipse. (En lugar de hacer todo esto, usted podría tener buscó fórmulas para el semi-eje longitudes y rotación de un general-forma de elipse en fuentes como la Wikipedia, pero no es muy difícil trabajar por esta relativamente simple caso).

Por ejemplo, digamos que por su elipse, $a=4$, $b=2$ y, como en la ilustración, $\beta=\frac\pi6$. Sustituyendo estos valores en $\mathbf Q'$ tenemos $A=\frac1{16}$, $B=-\frac1{8\sqrt3}$ y $C=\frac{13}{48}$. Conectar estos coeficientes en la ecuación (1) produce ${4\mp\sqrt7\over24}$ de los autovalores, que le da (después de un poco de trabajo) $\frac2{\sqrt3}(\sqrt7\pm1)$ (es decir, aproximadamente el $4.21$$1.90$) para el semi-eje longitudes y $\arctan\left({2\sqrt{21}-5\sqrt3\over3}\right)\approx9.55°$ de la elipse de la rotación.

Como una comprobación de validez, se observa que el corte de transformación de $\mathbf S$ ha determinante $1$, lo $\det{\mathbf Q'}=\det{\mathbf Q}=(ab)^{-2}$. Pero el determinante de una matriz es igual al producto de sus valores propios, de modo que el producto de la semi-eje longitudes de estas elipses es constante. Si multiplicamos el semi-eje longitudes de la transformación de la elipse calculados en el párrafo anterior juntos, realmente llegamos $8=4\cdot2$.

Es interesante la trama de estos valores como funciones del ángulo de distorsión $\beta$. El semi-eje longitudes son monótonas, como uno podría esperar, pero el ángulo de rotación alcanza un máximo en torno a $60°$ a cortante para el ejemplo de arriba-y luego disminuye a medida que el ángulo de distorsión es aún mayor.

Addendum: resulta que el máximo ángulo de rotación se obtiene cuando el ángulo de distorsión $\beta$ satisface $\tan\beta={\sqrt{a^2-b^2}\over b}=\frac fb$ donde $f$ es la distancia de los focos desde el centro de la elipse original. Esta cantidad es también conocida como la segunda excentricidad de la elipse y el correspondiente ángulo de su excentricidad angular.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X