我在 r68 上,我试图找到一个创建矩形金字塔的示例,我可以将 THREE.MeshFaceMaterial() 应用于其中,大多数示例似乎已经过时并且会在我当前的构建中抛出错误.
我只需要能够
- 对每张脸进行纹理化
- 旋转它使矩形面位于 -y 位置
提前致谢!
最佳答案
接受的答案仅适用于底边相等的金字塔。如果你想要一个长方形脚的金字塔,你可以这样做:
var geometry = new THREE.Geometry();
geometry.vertices = [
new THREE.Vector3( 0, 0, 0 ),
new THREE.Vector3( 0, 1, 0 ),
new THREE.Vector3( 1, 1, 0 ),
new THREE.Vector3( 1, 0, 0 ),
new THREE.Vector3( 0.5, 0.5, 1 )
];
geometry.faces = [
new THREE.Face3( 0, 1, 2 ),
new THREE.Face3( 0, 2, 3 ),
new THREE.Face3( 1, 0, 4 ),
new THREE.Face3( 2, 1, 4 ),
new THREE.Face3( 3, 2, 4 ),
new THREE.Face3( 0, 3, 4 )
];
现在您有一个金字塔几何体,底边为 1 x 1
,高度为 1
。通过应用缩放矩阵,我们可以将此金字塔制成任何所需的宽度
/长度
/高度
组合:
var transformation = new THREE.Matrix4().makeScale( width, length, height );
geometry.applyMatrix( transformation );
这也可以包装在自定义 Pyramid
几何类中,因此您可以像这样使用它:
new THREE.Pyramid( width, length, height );
关于javascript - 如何在 three.js r68 中制作一个矩形金字塔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26418591/