--- title: OrbitControls description: Wie man OrbitControls verwendet, um mit der Szene zu interagieren. author: alvarosabu thumbnail: /recipes/orbit-controls.png difficulty: 1 --- # OrbitControls [OrbitControls](https://threejs.org/docs/index.html?q=orbit#examples/en/controls/OrbitControls) ist ein Kamerasteuerungselement, das es dir ermöglicht, die Kamera frei um einen zentralen Punkt herum zu bewegen. Es ist eine großartige Möglichkeit, deine Szene zu erkunden. Allerdings sind [OrbitControls](https://threejs.org/docs/index.html?q=orbit#examples/en/controls/OrbitControls) kein Teil des Cores von Three.js. Daher müsstest du es aus dem Modul `three/addons/controls/OrbitControls` importieren. **TresJS** erstellt automatisch einen Katalog aus dem Core von Three, damit du sie als Komponenten nutzen kannst. Allerdings ist standardmäßig `TextGeometry` nicht Teil dieses Katalogs. Glücklicherweise bietet **TresJS** eine Möglichkeit, den Komponentenkatalog mit der `extend`-Methode zu erweitern. Für weitere Informationen darüber, wie du deinen TresJS-Katalog erweitern kannst, siehe den Abschnitt [Erweitern](/de/advanced/extending.md). ## Verwendung von OrbitControls Um `OrbitControls` zu verwenden, musst du sie aus dem Modul `three/addons/controls/OrbitControls` importieren. ```js import { OrbitControls } from 'three/addons/controls/OrbitControls' ``` Danach musst du den Komponentenkatalog mit der `extend`-Methode erweitern. ```js import { extend } from '@tresjs/core' import { OrbitControls } from 'three/addons/controls/OrbitControls' extend({ OrbitControls }) ``` Jetzt kannst du die Komponente `TresOrbitControls` in deiner Szene verwenden. ::: code-group ```vue [OrbitControls.vue] ``` Da [OrbitControls](https://threejs.org/docs/index.html?q=orbit#examples/en/controls/OrbitControls) eine Referenz zur Kamera und zum Renderer benötigen, musst du diese als Argumente übergeben. Du kannst das Composable [useTresContext](/de/api/composables#usetrescontext) verwenden, um die Kamera und den Renderer zu erhalten. ::: warning `useTresContext` kann nur innerhalb eines `TresCanvas` verwendet werden, da `TresCanvas` die Kontext-Daten bereitstellt. Deshalb haben wir eine Unterkomponente namens `OrbitControls.vue` implementiert. Erfahre mehr über [context](/de/api/composables#usetrescontext). ::: ```ts import { useTres } from '@tresjs/core' const { state } = useTres() ``` Dann würde der finale Code etwa so aussehen: ::: code-group ```vue [OrbitControls.vue] ``` ```vue [App.vue] ``` ::: ## OrbitControls von `cientos` Jetzt wird es interessant. ✨ Das Paket `cientos` bietet eine Komponente namens ``, die ein Wrapper für die `OrbitControls` aus dem Modul [`three-stdlib`](https://github.com/pmndrs/three-stdlib) ist. Das Beste daran? Du musst den Katalog nicht erweitern oder irgendwelche Argumente übergeben. Es funktioniert einfach. 💯 ```vue ```