8 votos

La comprensión de la Espiro Spline

Mi nombre Wray. Esta es mi primera vez aquí.

En primer lugar, me gustan las curvas. He estado manteniendo un proyecto de compañía por un largo tiempo que permitiría la implementación de un encantador de la nueva curva-algoritmo de interpolación nombre Spiro Spline. Los detalles de la Espiro, se establece en el Raph Levein de DOCTORADO de papel",De Espiral para Spline: Óptima de Técnicas Interactivas de Diseño de la Curva". Eche un vistazo a la primera.

Mi problema es que soy programador y no un matemático. Casi toda mi experiencia con las matemáticas es algebraica (con bucles). He intentado leer el periódico a un montón de veces, pero estoy flunking a la comprensión de lo que está pasando.

¿Cómo puedo empezar a comprender lo que Levein está haciendo? (Esta pregunta es abierta y me disculpo por eso) yo no estoy tan interesado en la parte posterior del papel donde el spiro curvas son convertidos a curvas de bezier. Sólo estoy tratando de entender su spiro función.

$$ spiro({ k }_{ 0 },{ k }_{ 1 },{ k }_{ 2 },{ k }_{ 3 })=\int _{ -0.5 }^{ 0.5 }{ { e }^{ i({ k }_{ 0 }+\frac { 1 }{ 2 } { k }_{ 1 }{ s }^{ 2 }+\frac { 1 }{ 6 } { k }_{ 2 }{ s }^{ 3 }+\frac { 1 }{ 24 } { k }_{ 3 }{ s }^{ 4 }) } } $$

No estoy seguro de lo $k$ o la razón por la que tiene cuatro sub-componentes. Mi mejor conjetura es que el ${ k }_{ 1 }$ ${ k }_{ 2 }$ dos nodos entre los cuales la curva en cuestión se encuentra, mientras que ${ k }_{ 0 }$ ${ k }_{ 3 }$ resto más allá de esos? Mi lógica se rompe por un conjunto de sólo dos o tres puntos.

Reconozco la integral símbolo, pero yo no la enseñan en la escuela. Por otra parte, me preocupa que no se traducen bien a los lenguajes de programación. He mostró el papel a un par de personas que saben de este tipo de cosas. Ellos dicen cosas como "Oh, él es simplemente el uso de un montón de pre-calculadas constantes". ¿Qué significa eso?

Yo no entiendo el concepto de una función. Por ejemplo, una Curva/Casteljau spline toma múltiples $(x,y)$ coordenadas, una variable $t$ $0$ $1$y devuelve un nuevo $(x,y)$ coordinar que será a lo largo de la curva. Hacer la curva se muestran en la pantalla es tan sencillo como ejecutar la función de un montón de veces para $0$, $0.1$, $0.2$, ... $1$ y conectar los puntos.

Si yo tuviera recompensa a mano en matemáticas.pila, estoy totalmente de haría. He estado tratando en esto por un largo tiempo en mi propio. Cualquier ayuda, sugerencias, enlaces a tutoriales, o cualquier otra cosa son bienvenidos y apreciados. :)


Actualización 1 año después: yo tuve la oportunidad de conocer a Raph Levien en persona. Nos geeked acerca de este y fue increíble. Curiosamente, todavía no estoy muy seguro de haber entendido todo, pero me hizo unirse a la Khan Academy y estoy decidido a hacer sentido de ella este año.

5voto

bubba Puntos 16773

Si eres un programador, no un matemático, que probablemente estaría mejor fuera de la lectura del código, en lugar de la tesis. Él proporciona, tanto en Python y Javascript versiones.

Pero, para responder a su pregunta acerca de la integral ...

Justo después de esa ecuación, él explica lo $k_0,k_1,k_2,k_3$. Ellos son la curvatura y de sus tres primeras derivadas en el punto medio de la curva. Más específicamente, $k_0$ es la curvatura en el punto medio, $k_1$ es la derivada de la curva con respecto a arclength, $k_2$ es la segunda derivada de la curva con respecto a arclength, y así sucesivamente. Él dice que averiguar la forma de la curva deseada requiere el cálculo de esta integral. De manera informal, si sabemos acerca de la curvatura, y qué tan rápido está cambiando, debemos ser capaces de determinar la forma de la curva, a la derecha (aunque no fácil). Hay algunos ejemplos detallados más adelante en el capítulo 8.

Este es el más general de la "espiral" de las curvas de la tesis considera. Un importante caso especial es cuando la curvatura es una función lineal de arclength. Esto le da a usted la de Euler espirales que se abordan en el capítulo 6.

Se podría decir que la definición de una curva, dando a los derivados de la curvatura en su punto medio es bastante extraño enfoque, y me gustaría tienden a estar de acuerdo. Esta opción es sólo para hacer el posterior trabajo de matemáticas más bien, parece. Estos valores de curvatura no se utilizan en la interfaz de usuario -- que son sólo para computacional fines.

Si no tienes mucha experiencia en las matemáticas, tal vez debería empezar con un enfoque más sencillo para el diseño de la curva. Hay varios mucho más simple de los enfoques que dan muy buenos resultados. Un ejemplo es Juan Hobby del enfoque, que se discute en la sección 4.7 de la tesis.

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