---
title: OrbitControls
descripción: Cómo usar OrbitControls para interactuar con la escena.
author: alvarosabu
thumbnail: /recipes/orbit-controls.png
difficulty: 1
---
# OrbitControls
[OrbitControls](https://threejs.org/docs/index.html?q=orbit#examples/en/controls/OrbitControls) es un controlador de cámara que te permite orbitar alrededor de un objetivo. Es una excelente manera de explorar tu escena.
Sin embargo, no forma parte del núcleo de ThreeJS. Por lo tanto, para usarlo, necesitarías importarlo desde el módulo `three/addons/controls/OrbitControls`.
Esto crea un problema porque **TresJS** crea automáticamente un catálogo del núcleo de Three para que puedas usarlos como componentes.
Afortunadamente, **TresJS** proporciona una forma de ampliar el catálogo de componentes. Puedes hacerlo utilizando el método `extend` de la biblioteca principal.
Para obtener más información sobre cómo ampliar tu catálogo de TresJS, consulta la sección de [extensión](/advanced/extending.md).
## Uso de OrbitControls
Para usar `OrbitControls`, debes importarlo desde el módulo `three/addons/controls/OrbitControls`.
```js
import { OrbitControls } from 'three/addons/controls/OrbitControls'
```
Luego, necesitas ampliar el catálogo de componentes utilizando el método `extend`.
```js
import { extend } from '@tresjs/core'
import { OrbitControls } from 'three/addons/controls/OrbitControls'
extend({ OrbitControls })
```
Ahora puedes usar el componente `TresOrbitControls` en tu escena.
::: code-group
```vue [OrbitControls.vue]
```
:::
Dado que [OrbitControls](https://threejs.org/docs/index.html?q=orbit#examples/en/controls/OrbitControls) necesita una referencia a la cámara y al renderizador, debes pasarlos como argumentos. Puedes usar el composable [useTresContext](/es/api/composables#usetrescontext) para obtener la cámara y el renderizador.
::: warning
`useTresContext` solo puede ser utilizado dentro de un `TresCanvas` ya que `TresCanvas` actúa como proveedor de los datos de contexto. Es por eso que creamos un subcomponente llamado `OrbitControls.vue`. Obtén más información sobre [contexto](/api/composables#usetrescontext).
:::
```ts
import { useTresContext } from '@tresjs/core'
const { camera, renderer } = useTresContext()
```
So the final code would be something like this:
::: code-group
```vue [OrbitControls.vue]
```
```vue [App.vue] {3,12}
```
:::
## OrbitControls de `cientos`
Aquí es donde comienza la parte interesante. ✨
El paquete `cientos` proporciona un componente llamado `` que es un envoltorio de los `OrbitControls` del módulo [`three-stdlib`](https://github.com/pmndrs/three-stdlib).
¿Lo mejor? No necesitas ampliar el catálogo ni pasar ningún argumento.
Simplemente funciona. 💯
```vue {3,12}
```