three.js-设置对象相对于其自身轴的旋转

蓝色的东西

我试图用点云制作一个静态3D棱镜,每个点云中都有特定数量的粒子。我已经根据旋转角度获得了棱镜各边的角坐标,并尝试在这些坐标所约束的区域中生成粒子。取而代之的是,所得的点云仅保留了左下角的坐标。

截图:http//i.stack.imgur.com/uQ7Q8.png

我尝试设置每个云对象的旋转角度,使其边缘相交,但它们只会绕世界中心旋转。我认为这与旋转矩阵和欧拉角有关,但是经过3天的尝试,我感到非常失望。(我是一名社会学家,而不是开发人员,并且在这个项目之前没有接触过图形。)

请帮忙?如何设置棱镜各面上的旋转角度?或者,也许还有一种更明智的方法来首先使粒子在正确的区域中生成?

代码:

// draw the particles

var n = 0;

do {

    var geom = new THREE.Geometry();    
    var material = new THREE.PointCloudMaterial({size: 1, vertexColors: true, color: 0xffffff});    

    for (i = 0; i < group[n]; i++) {

        if (geom.vertices.length < group[n]){

            var particle = new THREE.Vector3(

                Math.random() * screens[n].bottomrightback.x + screens[n].bottomleftfront.x,                    
                Math.random() * screens[n].toprightback.y + screens[n].bottomleftfront.y,                   
                Math.random() * screens[n].bottomrightfront.z + screens[n].bottomleftfront.z);

           geom.vertices.push(particle);       
           geom.colors.push(new THREE.Color(Math.random() * 0x00ffff));             
        }
    }

    var system = new THREE.PointCloud(geom, material);
    scene.add(system);

    **// something something matrix Euler something?**


n++
}           
while (n < numGroups); 
经典雷声

我尝试设置每个云对象的旋转角度,使其边缘相交,但它们只会绕世界中心旋转。

的确,它们仅绕0,0,0旋转。然后,简单的解决方案是将对象移到中心,旋转它,然后将其移回到其原始位置。

例如(代码未经测试,因此可能需要一些调整):

var m = new THREE.Matrix4();

var movetocenter = new THREE.Matrix4();
movetocenter.makeTranslation(-x, -y, -z);

var rotate = new THREE.Matrix4();
rotate.makeRotationFromEuler(); //Build your rotation here

var moveback = new THREE.Matrix4();
moveback .makeTranslation(x, y, z);

m.multiply(movetocenter);
m.multiply(rotate);
m.multiply(moveback); 

//Now you can use geometry.applyMatrix(m)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Three.js立方体相对于相机的面部旋转矢量

来自分类Dev

Three.js-将对象的位置相对于相机保持静态

来自分类Dev

围绕对象轴THREE.js旋转对象

来自分类Dev

Three.js-设置对象从X轴,Y轴和Z轴的标准化方向旋转

来自分类Dev

three.js通过轴方向旋转对象

来自分类Dev

Three.js-围绕特定轴旋转对象

来自分类Dev

Three.js旋转

来自分类Dev

Three.js-如何获取相机相对于原点的位置

来自分类Dev

如何使用Three.js定义相对于矢量路径的粒子云?

来自分类Dev

three.js旋转面向对象

来自分类Dev

在Three.js的中心旋转mergeometry对象

来自分类Dev

在three.js中旋转对象

来自分类Dev

three.js:结合tween.js绕世界轴旋转对象

来自分类Dev

相对于箭头键旋转图像react js

来自分类Dev

Three.js设置脸色

来自分类Dev

Three.js对象居中

来自分类Dev

Three.JS对象裁剪?

来自分类Dev

Three.js对象居中

来自分类Dev

Three.js-围绕轴旋转Object3D

来自分类Dev

当对象旋转时Three.js旋转相机

来自分类Dev

使用Three.js,WebGL显示对象的顶点并旋转对象

来自分类Dev

使用Three.js,WebGL显示对象的顶点并旋转对象

来自分类Dev

获取面部旋转Three.js

来自分类Dev

three.js中旋转或惯用的方向

来自分类Dev

Three.js相机旋转错误

来自分类Dev

加载文件的THREE.js旋转

来自分类Dev

Three.js旋转和定位几何

来自分类Dev

Three.js-相机旋转和TransformControls

来自分类Dev

three.js通过鼠标向下旋转对象并移动