我在r68上,我試圖找到一個人創建一個矩形金字塔的例子,我可以將THREE.MeshFaceMaterial()應用到大多數例子看起來相當過時,並將錯誤與我當前的構建投擲。如何在three.js r68中製作一個矩形金字塔?
我只需要能夠
- Texturise每個面
- 旋轉它,因此長方形臉是位於-Y位置提前
謝謝!
我在r68上,我試圖找到一個人創建一個矩形金字塔的例子,我可以將THREE.MeshFaceMaterial()應用到大多數例子看起來相當過時,並將錯誤與我當前的構建投擲。如何在three.js r68中製作一個矩形金字塔?
我只需要能夠
謝謝!
由於@WestLangley指出,使用THREE.CylinderGeometry()
做,這是正確的方法,這裏就是我做我的
var geometry = new THREE.CylinderGeometry(1, TILE_SIZE*3, TILE_SIZE*3, 4);
var material = new THREE.MeshBasicMaterial({color: 0xffff00 , wireframe:true});
var cylinder = new THREE.Mesh(geometry, material);
this.scene.add(cylinder);
完美的作品!
上面的答案只適用於基數相等的金字塔。如果您想用直角尺金字塔,你可以這樣做:
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);
您可以使用'CylinderGeometry'創建一個矩形金字塔。 – WestLangley 2014-10-17 06:57:25
它最終有5個頂點嗎? – 2014-10-17 07:06:34
試試看,如果您有問題,請發佈您的代碼。 – WestLangley 2014-10-17 14:38:17