Transformaciones

Starter pack

Meshes pueden ser transformados en el espacio 3D utilizando las propiedades position, rotation y scale. Estas propiedades son vectores, lo que significa que son arrays de n煤meros.

Empecemos con un poco de teor铆a.

Ejes

En un espacio 3D, hay tres ejes: x, y y z. Cada eje es una l铆nea que se extiende infinitamente en ambas direcciones.

Los ejes son perpendiculares entre s铆, lo que significa que forman un 谩ngulo recto en su intersecci贸n.

3D axes

Con Three.js los ejes se definen de la siguiente manera:

  • x: apunta hacia la derecha
  • y: apunta hacia arriba
  • z: apunta hacia el espectador

Vector3

Vectores se utilizan para representar puntos en el espacio 3D. Est谩n compuestos por tres n煤meros, uno para cada eje (x, y, z).

Con Three.js puedes crear vectores usando la clase Vector3. Esta clase es parte del paquete three, por lo que puedes importarla de esta manera:

import { Vector3 } from "three";

Puedes crear un vector pasando las coordenadas x, y, y z al constructor de Vector3:

const vector = new Vector3(1, 2, 3);

Threejs Vector 3 documentation

Posici贸n

La propiedad position es un vector 3D, pero gracias a r3f puedes pasarla como un array de n煤meros. Internamente, r3f convertir谩 el array a un objeto Vector3 y reaccionar谩 a los cambios. La mayor铆a de las propiedades en r3f funcionan de esta manera.

El valor por defecto para la propiedad position es [0, 0, 0]:

<mesh position={[0, 0, 0]} />

Descarga el starter pack y ejecuta yarn para instalar las dependencias y yarn dev para iniciar el servidor de desarrollo.

Deber铆as ver un cubo verde en el centro de la pantalla:

First r3f scene

De hecho, hay 3 cubos en la misma posici贸n exacta.

Vamos a jugar con las coordenadas x, y y z para mover los cubos.

Intentemos alinearlos en los diferentes ejes.

End of lesson preview

To get access to the entire lesson, you need to purchase the course.