Pregunta

Mi programa C ++ requiere acceso a splines 3D que se han construido en 3DS Max (2011). He encontrado un simple maxscript que exporta estas splines como archivos XML, un ejemplo de la siguiente manera:

<spline name='Line001' knots='5' closed='true'>
<knot x='-4.67297e-005' y='0.0' z='0.0'>
    <invec x='-0.000144482' y='-600.0' z='-1.52588e-005' />
    <outvec x='5.10227e-005' y='600.0' z='1.52588e-005' />
</knot>
<knot x='6.17511e-005' y='800.0' z='500.0'>
    <invec x='7.92357e-005' y='800.0' z='100.0' />
    <outvec x='4.42666e-005' y='800.0' z='900.0' />
</knot>
<knot x='-66.0574' y='1000.0' z='900.0'>
    <invec x='-66.0574' y='700.0' z='900.0' />
    <outvec x='-66.0573' y='1300.0' z='900.0' />
</knot>
<knot x='323.651' y='1300.0' z='4.57764e-005'>
    <invec x='323.651' y='1600.0' z='200.0' />
    <outvec x='323.651' y='1000.0' z='-200.0' />
</knot>
<knot x='-0.000152032' y='-700.0' z='-200.0'>
    <invec x='-0.00014329' y='-700.0' z='-400.0' />
    <outvec x='-0.000160774' y='-700.0' z='-1.52588e-005' />
</knot>
</spline>

Mi pregunta es - ¿Cuál sería el enfoque más simple (y más ligero) para acceder y evaluar esta spline en mi programa C ++? Sé cómo analizar el XML para los datos, pero a partir de entonces estoy perdido actualmente. Necesito poder a) evaluar un punto a lo largo de esta spline 3D y b) Calcule un vector que describe la tangente en este punto (si es posible). Entiendo que hay bibliotecas disponibles para este tipo de cosas, pero no estoy seguro de lo que es más apropiado, particularmente En términos del formato descrito anteriormente (Nudos, cada uno con un Invec y Outvec).

¿Fue útil?

Solución

Dado que 3DS Max ya está calculando estas curvas, puede exportar las curvas 'horneadas' a XML en la resolución que las necesita, lo que supongo que será un punto por cuadro.

Si prefiere evaluar las curvas en su aplicación, entonces las curvas Bézier (que supongo que son) son bastante fáciles de calcular sin la ayuda de una biblioteca externa. Echa un vistazo al Algoritmo de De Casteljau En Wikipedia, en particular la sección que describe la interpretación geométrica, que es mucho más fácil de comprender que las fórmulas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top