2 votos

Cálculo numérico de las direcciones normal, binormal y tangente de la curva no paramétrica en $\mathbb{R}^{3}$

Digamos que tengo datos numéricos para una curva en $\mathbb{R}^{3}$ pero no tengo las ecuaciones paramétricas de la curva; todo lo que tengo es una muestra de $N$ -muchos puntos que se encuentran en esta curva, $R_{i}=[x_{i} \, y_{i} \, z_{i}]$ para las filas $1\leq i \leq N$ . ¿Cómo podría determinar numéricamente los vectores normal, binormal y tangente para cada punto de esta curva?

enter image description here

Conozco la dirección en la que viajan los puntos de la curva y, por tanto, puedo calcular/aproximar numéricamente el vector tangente utilizando, por ejemplo, un esquema de diferencias centrales:

$$\vec{T}v_{i} \approx \frac{v_{i+1}-v_{i-1}}{2\Delta t},$$

donde $\Delta t$ es el tiempo de retraso en el muestreo de esta curva paramétrica (y $i$ corre $2 \leq N-1$ ).

Convencionalmente, las binormales y las direcciones requieren la(s) ecuación(es) paramétrica(s) del movimiento para ser calculadas (por ejemplo, la Ecuaciones de Frenet-Serret ). ¿Existen métodos para aproximar numéricamente la normal $\vec{N}$ y binormal $\vec{B}$ , al igual que he aproximado numéricamente el vector tangente $\vec{T}$ en $v_{i}$ ?

La clave, creo, es el vector normal porque una vez $\vec{N}v_{i}$ y $\vec{T}v_{i}$ se han encontrado, $\vec{B}v_{i}$ puede calcularse entonces mediante su definición como $\vec{B} = \vec{T} \times \vec{N}$ . En particular, $\vec{N}$ debe ser ortogonal a $\vec{T}$ y $\vec{B}$ y debe apuntar en la dirección en que se dobla la curva. Esto se refiere a la dirección en la que la curva se desvía del movimiento en línea recta. El vector binormal apunta en la dirección alrededor de la cual gira el vector tangente.

3voto

John Hughes Puntos 27780

Esta cuestión está en el centro del campo general de la "Geometría Diferencial Discreta". También es el tipo de cosas que mi colega Tom Banchoff ha estudiado durante más de 50 años.

La primera pregunta que hay que hacerse es: "¿Tiene la curva subyacente un marco Frenet?". Si, por ejemplo, con un muestreo cada vez más fino obtienes una secuencia de vectores tangentes que no convergen, tienes un problema. (Un buen ejemplo de esto: mira la gráfica de $y = |x|$ cerca del origen). Incluso si hay es un vector tangente limitante, es posible que la curvatura termine en cero, en cuyo caso no hay marco de Frenet.

La segunda pregunta (que quizás debería haber sido la primera) es "¿hay alguna curva subyacente?" Si extraigo, por ejemplo, 6 puntos al azar de una distribución gaussiana alrededor del origen, puedes "conectar los puntos" para formar una curva, pero es poco probable que el siguiente punto que extraiga de esa distribución se sitúe sobre ella. De hecho, el conjunto subyacente no es una curva en absoluto. $\Bbb R^2$ . Este es un caso extremo, pero incluso cosas tan simples como las soluciones de ecuaciones polinómicas como $x^2 + y^2 = 1$ podría tener problemas, ya que $y^3 = x^2$ le mostrará.

Una vez formuladas esas preguntas, que le ruego que no ignore, puede fingir todo está bien y entonces hay una buena solución: calcular la normal en el punto $i$ , mira los puntos $P_{i-1}, P_i, P_{i+1}$ Estos tres se encuentran en un plano, y la normal de la curva es el vector en ese plano que está más cerca de ser ortogonal a la tangente. Dejando que $v = P_i - P_{i-1}$ y $u = P_{i+1} - P_i$ m la normal al plano ( no la curva normal) es $n = u \times v$ y entonces se puede aproximar $N$ (la curva normal) como $N = \pm n \times T$ (Os dejo que resolváis el signo). Por cierto, el vector $\pm n$ (de nuevo, tienes que calcular el signo) es una buena aproximación a la bi normal (una vez que se convierte en un vector unitario).

Para ser sincero, el enfoque del párrafo anterior funcionará bien, pero cerca de un punto de inflexión, los tres puntos serán colineales (o casi), y entonces estarás jodido. Por otra parte, en ese punto, tampoco tienes un marco de Frenet, así que quizás tengas suerte de que el cálculo te lo diga. Lo más probable es que sólo obtengas un vector muy corto para $n$ y, por tanto, un vector corto para $N$ Lo normalizarás sin pensar, obtendrás un vector en alguna dirección aleatoria debido a fallos numéricos y luego afirmarás que mi razonamiento era erróneo. (Suspiro.)

Un enfoque ligeramente mejorado consiste en estimar el plano de mejor ajuste mediante una secuencia de $5$ o $7$ o más puntos, es decir, $P_{i-k},\ldots, P_{i-1}, P_i, P_{i+1}, \ldots, P_{i+k}$ si el muestreo es lo suficientemente fino, esto dará una gran aproximación a $n$ y por lo tanto $N$ al menos cuando $N$ está bien definida. Si el muestreo es demasiado grueso, entonces una gran $k$ llevará a la basura. El problema es que "cuán grande debe ser $k$ ser" depende de la frecuencia de muestreo, y en la curvatura desconocida de la curva subyacente. No tengo ningún consejo sobre cómo abordar este compromiso en particular.

¿Por qué funciona esto? Bueno, ayuda volver a la geometría diferencial clásica, donde el "plano de osculación" (¡el "plano TN" en términos de Frenet!) se define mediante alguna frase extraña como "es el plano que pasa por tres puntos sucesivos de la curva". Una vez que se entiende ese tipo de frase, la traducción al cálculo numérico no es demasiado difícil.

Como otro enfoque (y mejor en mi opinión), podrías considerar la secuencia de puntos que tienes como un polígono y preguntar cuál es el marco de frenet de un polígono que realmente "debería ser". Una vez que piensas en ello, encuentras cosas como "el vector tangente a lo largo de una arista debería ser esa arista", y "el vector binormal en un vértice debería ser el producto cruzado de los dos vectores de aristas adyacentes". ¿Y el vector binormal a lo largo de ¿el borde? Bueno, hay un caso bastante bueno para extender desde cada extremo hacia el punto medio del borde como una constante, para que la binormal se convierta en una función localmente constante (en lugar de una continua), y luego rellenar, en el punto medio del borde, con un arco de vectores que transite de una binormal a otra... pero eso es demasiado difícil de describir aquí. Esta idea pertenece (por lo que sé) a Tom Banchoff, que me la contó un día tomando un café. Estoy bastante seguro de que Eitan Grinspun ha utilizado esta idea (y cosas relacionadas con las superficies) en algunos de sus trabajos de infografía también, probablemente habiéndola descubierto de forma independiente. Quizá quieras echarle un vistazo.

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