Actualización
Enunciado alternativo del problema, con nueva imagen
Dados tres puntos $P_1$, $P_2$ y $P_3$ en el plano cartesiano, me gustaría encontrar la elipse que pasa por los tres puntos, sujeta a las siguientes restricciones:
-
Los puntos $P_1$ y $P_2$ se encuentran en los ejes de la elipse.
-
$\|P_2-P_3\|\le\|P_2-P_1\|$, es decir, $P_2$ no está más lejos de $P_3$ que de $P_1$. (Si este no es el caso, simplemente podemos intercambiar las etiquetas de $P_1$ con $P_3$ para asegurarnos de que así sea).
En la imagen a continuación, sea $O$ el centro de la elipse y sean $F_1$ y $F_2$ los focos. También sean $P_1\prime$ y $P_2\prime$ los puntos opuestos a $P_1$ y $P_2$, respectivamente, en la elipse. Estos puntos $O$, $F_1$, $F_2$, $P_1\prime$ y $P_2\prime$ son incógnitas a resolver. ¿Cómo los encuentro? (Nota: ¡esto no es tarea escolar!)
Esto es lo que sé
- El punto central $O$ se encuentra en un círculo que pasa por los puntos diametralmente opuestos $P_1$ y $P_2$ (mostrado como una línea punteada en naranja) porque el ángulo ${\angle}P_1OP_2$ debe ser de 90°.
- $\|P_i-F_1\| + \|P_i-F_2\| = 2r$, $i \in \{1,2,3\}$. (La suma de las distancias de cualquier punto en una elipse a los focos es un valor constante, en este caso $2r$.)
- $\|P_2-P_2\prime\| = 2r$ y $\|P_2-O\|=r$. (Sigue de #2.)
- $\|P_1-O\|^2 + \|P_2-O\|^2 = \|P_2-P_1\|^2$. (Teorema de Pitágoras aplicado al ${\triangle}P_1OP_2$. Sigue de #1.)
¿Qué me falta?
La intuición me dice que debe haber alguna manera simple de encontrar $O$, $F_1$, $F_2$ y $r$ —y sin embargo no veo cómo avanzar desde este punto.
A continuación se presenta el enunciado original del problema, antes de la actualización. El enunciado original toma más un enfoque algebraico, mientras que este nuevo enunciado toma más un enfoque geométrico.
Enunciado Original del Problema
¿Cómo puedo encontrar la elipse única que pasa por tres puntos distintos P, P y P, de modo que P y P se encuentren en los ejes de la elipse y que P esté más cerca de P que de P? (En el caso más simple, P puede también estar en el mismo eje que P, pero nunca estará en el mismo eje que P ya que los puntos son distintos.) Más específicamente, lo que realmente quiero encontrar es el ángulo con el cual el eje coincidente con P está rotado con respecto al eje x, porque esto me dirá el ángulo de la línea tangente en P, que es en lo que estoy interesado en última instancia.
Esto no es tarea escolar. Esto es para el ajuste de curvas (local) por partes de una colección arbitraria de puntos, donde la curva ajustada pasa por cada punto utilizando segmentos de curvas cúbicas de Bézier. Para cada tripleta de puntos consecutivos, quiero trazar una elipse imaginaria a través de los puntos, con el punto medio (por ejemplo, P) proporcionando una línea tangente agradable de la cual derivar un par de puntos de control de Bézier. Esto proporcionará continuidad C en la curva final.
Enfoques que he intentado hasta ahora
-
El primer enfoque que intenté fue describir la elipse paramétricamente y luego escalar, rotar y trasladarla —y luego formularla como una ecuación a resolver en términos de $\theta$. Eso terminó reduciéndose a: $$ \Big(\frac{A\cos\theta - B\sin\theta}{C\sin\theta - D\cos\theta}\Big)^2 + \Big(\frac{E\cos\theta + F\sin\theta}{G\sin\theta + H\cos\theta}\Big)^2 = 1 $$ donde $A$,$B$,$C$,$D$,$E$,$F$,$G$,$H$ son varios componentes vectoriales de deltas entre los tres puntos, pero eso no me llevó a ninguna parte porque no tengo idea de cómo resolver eso.
-
El segundo enfoque que intenté fue tratar de calcular $\theta$ como una función de la razón de $\|\vec{P_2}-\vec{P_3}\|$ sobre $\|\vec{P_1}-\vec{P_2}\|$, pero estaba equivocado al pensar que eso me llevaría a algún lado, ya que a posteriori creo que la razón solo es útil aquí para círculos en lugar de elipses.
-
El tercer enfoque que intenté fue desarrollar una fórmula para una elipse general con centro $(u,v)$, longitudes de semieje mayor/menor $\alpha$ y $\beta$, y rotación $\varphi$. Esto me dio $$ \Big(\frac{(x-u)\cos\varphi + (y-v)\sin\varphi}{\alpha}\Big)^2 + \Big(\frac{-(x-u)\sin\varphi + (y-v)\cos\varphi}{\beta}\Big)^2 = 1 $$ lo cual está bien, pero no veo cómo avanzar con esto.
-
El cuarto enfoque que intenté fue escribir la elipse en forma cuadrática bivariada general $$ Ax^2 + Bxy + Cy^2 + Dx + Ey + F = 0 , \quad\textrm{(con A,B,C no todos iguales a cero)} $$ en el cual las elipses se representan cuando $B^2 - 4AC < 0$, y luego escribir tres ecuaciones lineales de $A$,$B$,$C$,$D$,$E$,$F$ usando $P_1$, $P_2$ y $P_3$ de la siguiente manera: $$Ax_1^2 + Bx_1y_1 + Cy_1^2 + Dx_1 + Ey_1 + F = 0$$ $$Ax_2^2 + Bx_2y_2 + Cy_2^2 + Dx_2 + Ey_2 + F = 0$$ $$Ax_3^2 + Bx_3y_3 + Cy_2^2 + Dx_3 + Ey_3 + F = 0$$ Donde estoy atascado en este momento es cómo codificar el requisito $B^2 - 4AC < 0$ en este sistema de ecuaciones lineales, y cómo codificar que $P_1$ y $P_2$ se encuentran en los ejes de la elipse.
¿Otros enfoques?
Estoy sin ideas. Creo que la solución es probablemente bastante simple, quizás involucrando unos pocos arcsenos o arcocosenos y una raíz cuadrada o dos. No he podido encontrar este problema en particular en ninguna parte (y por lo tanto ninguna solución convenientemente empaquetada), pero estoy seguro de que no puede ser tan inusual.
Se me ocurrió tomar mi primera solución parcial (enumerada arriba) y hacer algún tipo de búsqueda binaria iterativa para $\theta$ (probando diferentes valores hasta que la curva pase por $P_3$), pero estoy mucho más interesado en una solución en forma cerrada, porque esto se ejecutará en un bucle sobre cientos o miles de conjuntos de puntos.
0 votos
¿Qué pasa con el círculo con estos puntos? Supongo que la solución no va a ser única..
1 votos
@Berci, las líneas que unen $P_1$ y $P_2$ con el centro de la elipse deben ser perpendiculares, lo cual no será cierto en general si consideras la elipse como un círculo.
0 votos
¡Ah, cierto, de hecho..!
0 votos
@RahulNarain — Un círculo funciona muy bien cuando $P_2$ está posicionado entre $P_1$ y $P_3$, especialmente cuando está cerca del segmento de línea $P_1P_3$. Pero cuando $P_2$ está, digamos, muy a la derecha o a la izquierda de $P_3$ y cerca de ser colineal con $P_1P_3$, entonces un círculo crea una tangente no deseada que está casi en una dirección perpendicular a lo que necesito. ¡Aprecio la sugerencia de intentar un círculo en su lugar, sin embargo! Definitivamente estoy abierto a posibilidades además de las elipses. Pensaba anoche que tal vez una parábola funcionaría.
0 votos
Las inelipses de Meisner y Mandart son ambas elipses de tres puntos.