// 引入Three.js和TransformControls
import * as THREE from 'three';
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
import { TransformControls } from 'three/examples/jsm/controls/TransformControls.js';
// 创建场景、相机和渲染器
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// 创建一个立方体并添加到场景中
const geometry = new THREE.BoxGeometry();
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
// 设置相机位置
camera.position.z = 5;
// 添加轨道控制(OrbitControls)以便可以旋转和平移视图
const orbitControls = new OrbitControls(camera, renderer.domElement);
// 添加TransformControls以实现平移、旋转和缩放功能
const transformControls = new TransformControls(camera, renderer.domElement);
scene.add(transformControls);
// 将TransformControls绑定到立方体上
transformControls.attach(cube);
// 渲染循环
function animate() {
requestAnimationFrame(animate);
// 更新TransformControls
transformControls.update();
renderer.render(scene, camera);
}
animate();
OrbitControls
和TransformControls
两个控件。OrbitControls
可以让用户通过鼠标交互来旋转和平移视图。TransformControls
用于提供平移、旋转和缩放的功能。我们将它添加到场景中,并绑定到立方体上。requestAnimationFrame
创建一个动画循环,不断更新场景并渲染。这样,你就可以通过鼠标与立方体进行交互,实现平移、旋转和缩放操作。
上一篇:js base64解码
下一篇:js translate
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站