首页 » JavaScript » three.js » 正文

【three.js】three.js中立方体的三个位置坐标点和相机的默认位置是什么意思?

2024-1-9 ·  815 views  ·  1 replies 
const scene = new THREE.Scene();

// red cube
const geometry = new THREE.BoxGeometry(1, 1, 1);
const material = new THREE.MeshBasicMaterial({ color: 0xff3300 });
const mesh = new THREE.Mesh(geometry, material);
console.info('mesh', mesh.position);
scene.add(mesh);

// camera
const sizes = {
  width: 800,
  height: 600
};
const camera = new THREE.PerspectiveCamera(
  75,
  sizes.width / sizes.height,
  0.1,
  1000
);
// camera.position.z = 3;
// camera.position.x = 1;
scene.add(camera);

const canvas = document.querySelector('.webgl');
const renderer = new THREE.WebGLRenderer({ canvas });
renderer.setSize(sizes.width, sizes.height);
renderer.render(scene, camera);

上面这段代码是看不到立方体的,因为相机默认是在坐标轴的(0,0,0)的位置,而立方体的默认位置也是(0,0,0),但是这里注意,这个位置并不是某个角在这个位置,而是立方体的中心在这个位置,所以默认情况下,相机正好在立方体的里面,所以需要通过

camera.position.z = 3;
camera.position.x = 1;

上面的代码调整相机位置,将相机从立方体中取出来,这样才可以看到立方体
下面是chatgpt的解释

在Three.js中,mesh.position.set(0, 0, 0); 表示设置物体的中心点(或称为几何中心)位于 (0, 0, 0) 这个三维坐标位置。这并不是立方体的一个角,而是立方体几何体的中心点。

如果你想让立方体的一个角位于 (0, 0, 0) 处,你可以通过调整立方体几何体的中心点来实现。例如,通过将立方体的几何体的中心点设置为 (-0.5, -0.5, -0.5),可以让立方体的一个角位于原点:

const geometry = new THREE.BoxGeometry(1, 1, 1);
geometry.center(); // 将几何体的中心点设置为几何体的中心
const material = new THREE.MeshBasicMaterial({ color: 0xf00 });
const mesh = new THREE.Mesh(geometry, material);
mesh.position.set(0, 0, 0); // 设置立方体的位置
scene.add(mesh);

这样,立方体的一个角就会位于 (0, 0, 0) 处。请注意,geometry.center() 方法将几何体的中心点移动到几何体的几何中心。

  1. Avatar photo
    咪啪咪啪发表于:2024-01-09 13:17

    阿是

Leave a reply