Pregunta

Estoy escribiendo una herramienta que se usará para procesar un montón de datos 3D, haciendo cosas como rotar objetos, traducir, escalar y todo eso bueno. ¿Alguien sabe de una buena biblioteca que ya haga algunas de estas cosas 3D comunes?

No estoy interesado en visualizar los datos en este momento, y estoy principalmente interesado en realizar las operaciones.

Cosas que sé que necesitaré en este momento:

  • vectores 2D / 3D / 4D
    • (suma, resta, producto de puntos, producto cruzado, etc.)
  • Rotación / Traducción / Escala utilizando matrices
  • Cuaterniones

Pude localizar la biblioteca Sharp3D , pero parece que podría hacer lo que quiero pero no tengo No se ha actualizado en mucho tiempo. ¿Alguien ha usado esto antes? ¿Alguna otra sugerencia (mejor)?

¿Fue útil?

Solución

Microsoft.Xna.Framework (enviar este XNA) podría hacer el trabajo.

  

La biblioteca XNA Framework Math tiene varios tipos geométricos básicos que pueden usarse para manipular objetos en espacios 2D o 3D. Los objetos primitivos en esta biblioteca representan los datos necesarios para representar un objeto geométrico o una operación en ese objeto. Cada tipo geométrico tiene una serie de operaciones matemáticas que son compatibles con el tipo.

     

Vector

     

XNA Framework proporciona las clases Vector2, Vector3 y Vector4 para representar y manipular vectores. Un vector se usa típicamente para representar una dirección y magnitud. Sin embargo, en el marco XNA también se puede usar para almacenar una coordenada o algún otro tipo de datos con los mismos requisitos de almacenamiento.

     

Cada clase de vector tiene métodos para realizar operaciones vectoriales estándar como:

     
      
  • producto de punto
  •   
  • producto cruzado
  •   
  • Normalización
  •   
  • Transformación
  •   
  • Interpolación spline lineal, cúbica, Catmull-Rom o Hermite.
  •   
     

Matrices

     

XNA Framework proporciona la clase Matrix para la transformación de la geometría. La clase Matrix utiliza un orden mayor de fila para direccionar matrices, lo que significa que la fila se especifica antes que la columna cuando describe un elemento de una matriz bidimensional. La clase Matrix proporciona métodos para realizar operaciones de matriz estándar, como calcular el valor determinado o inverso de una matriz, además de métodos auxiliares para crear matrices de escala, traducción y rotación.

     

Quaternions

     

XNA Framework proporciona la estructura de Quaternion para representar y calcular la rotación eficiente alrededor de un vector alrededor de un ángulo específico.

Otros consejos

Nunca lo he usado antes, pero simplemente agarré Sharp3D y parece que funciona bien (aparte de algún problema sobre nombres fuertes que tardaron unos minutos en solucionarlo). Mi impresión es que no es exactamente un peso liviano pero está lejos de ser pesado.

En cuanto a las actualizaciones recientes, no es que las matemáticas estén cambiando o algo así ...

Pruebe Scinet Linea en www.obacs.com . No es una biblioteca gratuita pero, en comparación con otras alternativas, no es muy costosa wp

Scinet Linea ya no está disponible en www.obacs.com. Ahora viene dentro de Scinet Math, que tiene muchas más capacidades. Compré una copia para mi investigación hace un mes. Me gusta hasta ahora.

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