Main Spaces
Author: Oscar Julián Tinjacá y Luis Miguel Báez
Aplicación de Transformaciones Espaciales Usando P5js
Pincel en 3D
Espacios Vectoriales
Un espacio vectorial es una estructura matemática definida por un número determinado de vectores linealmente independientes, también llamados vectores base; el número de vectores linealmente independientes define el tamaño del espacio vectorial, por lo que un espacio 3D tiene tres vectores base, mientras que un espacio 2D tendría dos.
Transformaciones Espaciales
Podemos ver las transformaciones en un espacio vectorial simplemente como un cambio de un espacio a otro. Si queremos representar una transformación de un espacio 3D a otro necesitaremos una Matriz 4x4.
Implementación
Para la Implementación del pincel en un espacio de 3 dimensiones inicialmente se usaron dos librerías.
- Treegl: Librería de alto nivel enfocada en transformaciones espaciales.
- EasyCam: Librería enfocada en el control de la cámara en espacios de 3 dimensiones.
Extraido de: Treegl - Github
Extraido de: EasyCam - Github
Como dispositivo de hardware externo, se usó un control de Xbox 360; para su conexión con el entorno de p5js, se usó la función "addEventListener()" que reconoce los posibles eventos que puedan intervenir en la ejecución del código. Al conectar el control al computador se registra el evento "gamepadconnected". Posteriormente, se configura los botones y ejes para establecer las funcionalidades que pueda tener el código.
Conociendo el Hardware
- A. Cambio de vista en la cámara.
- B. Cambio de color en la brocha.
- 1. Moviemiento de la brocha en el espacio.
- 2. Traza de puntos generada por la brocha.
- 7. Limpieza del espacio.
- 8. Zoom-in / Zoom-out de la cámara en el espacio.
- 8 + 12. Movimiento de la cámara en el espacio.
Resultados usando P5js
Dibujando Moléculas de Compuestos Químicos
Conclusiones y Trabajo Futuro
- Se podría implementar una función similar a orbitcontrol() que sea funcional para cualquier dispositivo externo ya que esta tiene una limitación y solo funciona con mouse o touchpad.
- Se podrían añadir más funcionalidades para la brocha en su recorrido ya que el hardware posee una cantidad suficiente de botones para ello
Resources: References | ||||
---|---|---|---|---|
Coding Labs | Coding Labs | |||
Bio Model | Bio Model |