我在r68上,尝试查找创建矩形金字塔的示例,可以将THREE.MeshFaceMaterial()应用到其中,大多数示例似乎已经过时并在当前版本中引发错误。
我只需要能够
提前致谢!
最佳答案
可接受的答案仅适用于底边相等的金字塔。如果您想要一个矩形脚的金字塔,可以这样:
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
。通过应用缩放矩阵,我们可以使此金字塔成为任何所需的width
/ length
/ height
组合: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/