Javascript 如何围绕边旋转三角形?

Javascript 如何围绕边旋转三角形?,javascript,object,three.js,rotation,Javascript,Object,Three.js,Rotation,一个由three.js组成的三角形如何围绕其一条边旋转?当我试着旋转它时,它是围绕着它的中心旋转的 三角形由以下各项组成: var triangleMesh; var triangleGeometry = new THREE.Geometry(); triangleGeometry.vertices.push( new THREE.Vector3( 0.0, 1.0, 0.0 ) ); triangleGeometry.vertices.push( new THREE.Ve

一个由three.js组成的三角形如何围绕其一条边旋转?当我试着旋转它时,它是围绕着它的中心旋转的

三角形由以下各项组成:

var triangleMesh; 
var triangleGeometry = new THREE.Geometry(); 
    triangleGeometry.vertices.push( new THREE.Vector3( 0.0, 1.0, 0.0 ) ); 
    triangleGeometry.vertices.push( new THREE.Vector3( -1.0, -1.0, 0.0 ) ); 
    triangleGeometry.vertices.push( new THREE.Vector3( 1.0, -1.0, 0.0 ) ); 

    triangleGeometry.faces.push( new THREE.Face3( 0, 1, 2 ) ); 

    triangleGeometry.faces[0].vertexColors[0] = new THREE.Color(0xFF0000); 
    triangleGeometry.faces[0].vertexColors[1] = new THREE.Color(0x00FF00); 
    triangleGeometry.faces[0].vertexColors[2] = new THREE.Color(0x0000FF); 

var triangleMaterial = new THREE.MeshBasicMaterial({ vertexColors:THREE.VertexColors, side:THREE.DoubleSide }); 

    triangleMesh = new THREE.Mesh( triangleGeometry, triangleMaterial ); 
    triangleMesh.position.set(-1.5, 0.0, 4.0 ); 

    triangleMesh.position.z     -=  5;
    triangleMesh.rotation.z     +=  angle * Math.PI / 180; // angle is from outer for loop

    parent.add( triangleMesh );

我需要围绕一条边旋转它来构建棱柱体/六边形。

要围绕一个角旋转三角形,该角必须位于坐标的中心。为此,您可以使用
.translate(x,y,z)
方法
THREE.Geometry()

看一下代码片段

var scene=new THREE.scene();
var摄像机=新的三透视摄像机(60,window.innerWidth/window.innerHeight,11000);
摄像机位置设置(0,0,5);
var renderer=new THREE.WebGLRenderer({
反别名:对
});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
var ngon=11;
var半径=2;
变量角度=数学PI/ngon;
var triHeight=数学cos(角度)*半径;
var triWidth=数学正弦(角度)*半径;
三角网;
var triangleGeometry=新的三点几何();
三角几何.顶点.推(新的三.矢量3(0.0,三高度,0.0));
三角几何.顶点.推(新的三.矢量3(-triWidth,0,0.0));
三角几何.顶点.推(新的三.矢量3(三宽度,0,0.0));
三角几何.面.推(新的三面3(0,1,2));
三角几何.faces[0].顶点颜色[0]=新的三种颜色(0xFF0000);
三角几何.faces[0].顶点颜色[1]=新的三种颜色(0x00FF00);
三角几何.faces[0]。顶点颜色[2]=新的三种颜色(0x0000FF);
三角几何.平移(0,-三高,0);//上顶点现在位于中心
var triangleMaterial=新的三网格基本材质({
顶点颜色:3。顶点颜色,
侧面:三个。双面
});
三角形网格=新的三点网格(三角形几何、三角形材料);
对于(变量i=1;i
正文{
溢出:隐藏;
保证金:0;
}

你能用“我需要绕一条边旋转它来构建棱柱/h exagons”来说明你的意思吗?当三角形出现在屏幕上时,你可以看到它的整个平面,一边朝上,我想顺时针旋转三角形,比如说绕这个上边缘旋转60度,把它放到父对象中,因此,我可以旋转下一个三角形,围绕其上边缘旋转120度,依此类推,直到六边形在运行6次后存在(因此每个平铺60度)。我想,您的意思是要围绕其顶部顶点旋转该三角形
[0.0,1.0,0.0]
?如果没有,那么最好显示所需结果的解释性图片。