three.js
是一个基于 WebGL 的 JavaScript 3D 库,用于在网页上创建和显示三维图形。在 three.js
中,物体的位置是通过其 position
属性来控制的,该属性是一个 THREE.Vector3
对象,表示物体在三维空间中的坐标(x, y, z)。
three.js
提供了丰富的 API 和示例,使得开发者可以快速上手。以下是一个简单的 three.js
示例,展示如何设置物体的位置:
// 创建场景
const scene = new THREE.Scene();
// 创建相机
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;
// 创建渲染器
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);
// 设置立方体的位置
cube.position.set(1, 2, 3); // x, y, z 坐标
// 将立方体添加到场景中
scene.add(cube);
// 渲染循环
function animate() {
requestAnimationFrame(animate);
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
renderer.render(scene, camera);
}
animate();
问题:物体位置设置后没有变化。
原因:
解决方法:
animate
函数被调用。例如,如果立方体是另一个物体的子物体,需要同时调整父物体和子物体的位置:
const parentObject = new THREE.Object3D();
parentObject.position.set(0, 0, 0);
scene.add(parentObject);
parentObject.add(cube);
cube.position.set(1, 2, 3); // 相对于父物体的位置
通过这种方式,可以更精确地控制物体的最终显示位置。
领取专属 10元无门槛券
手把手带您无忧上云