Three.js 中的 OrbitControls 是一个用于控制相机围绕目标旋转以及缩放、平移等操作的控制器。
OrbitControls 是 Three.js 中用于提供相机绕物体旋转、缩放以及平移的一个控制器。
以下是一些使用 OrbitControls 的方法:
- 基本使用:
// 创建相机
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;
// 创建场景
const scene = new THREE.Scene();
// 创建物体
const geometry = new THREE.BoxGeometry(1, 1, 1);
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
// 创建渲染器
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// 创建OrbitControls
const controls = new THREE.OrbitControls(camera, renderer.domElement);
// 渲染循环
function animate() {
requestAnimationFrame(animate);
renderer.render(scene, camera);
controls.update(); // 要更新控件的状态
}
animate();
- 限制旋转:
你可以通过设置 OrbitControls
的 minPolarAngle
和 maxPolarAngle
属性来限制旋转的最小和最大角度。
const controls = new THREE.OrbitControls(camera, renderer.domElement);
controls.minPolarAngle = Math.PI / 3; // 最小角度设置为60度
controls.maxPolarAngle = Math.PI / 2; // 最大角度设置为90度
- 禁用某些操作:
你可以通过设置 OrbitControls
的 enabled
属性为 false
来禁用控件,或者通过设置 enableRotate
、enableZoom
、enablePan
等属性为 false
来分别禁用旋转、缩放和平移。
const controls = new THREE.OrbitControls(camera, renderer.domElement);
controls.enabled = false; // 禁用控件
controls.enableRotate = false; // 禁用旋转
- 添加监听事件:
你可以通过监听 OrbitControls
的事件来响应用户的操作。
const controls = new THREE.OrbitControls(camera, renderer.domElement);
controls.addEventListener('change', () => {
// 当用户进行旋转、缩放或平移操作时,会触发这个事件
console.log('Camera position:', camera.position);
});
- 设置动画时间:
你可以通过设置 OrbitControls
的 animateTo
方法来平滑地动画到特定的位置。
const controls = new THREE.OrbitC
评论已关闭