首页 > 解决方案 > 如何在three.js中获取PlaneGeometry的大小

问题描述

我用 PlanGeometry 和 BasicMaterial 制作了网格。

function createMesh(width, height) {
      let geometry = new THREE.PlaneGeometry(width, height);
      let mat = new THREE.MeshBasicMaterial({
          color: 0xffffff,
          transparent: true,
          side: THREE.DoubleSide,
          opacity: 0.5
      });
      return new THREE.Mesh(geometry, mat);
  }

我在其他地方使用了这个网格并改造了这个网格。所以

mesh.matrix.identify();
mesh.applyMatrix(matrix); // make some transform.

现在,我想获得平面几何的大小所以我尝试了以下方法。

  let boundingBox = new THREE.Box3().setFromObject(mesh);
  let size = new THREE.Vector3(0,0,0);
  size = boundingBox.getSize(size);
  console.log('size', size);

但大小不正确。之前创建 PlaneGeometry (width, height) 时如何获取宽度、高度值?

let geometry = new THREE.PlaneGeometry(width, height);

我想知道宽度、高度值的上位代码。请任何人帮助。

标签: javascriptthree.js

解决方案


我找到了答案。

let parameters = mesh.geometry.parameters;
let size = {
    width: parameters.width,
    height: parameters.height
};
console.log('size', size);

谢谢@prisoner849。


推荐阅读