【问题标题】:threejs point cloud geometry rotation to itselfthreejs 点云几何旋转到自身
【发布时间】:2015-05-03 20:40:52
【问题描述】:

我已经使用一些 x,y,z 位置创建了一个几何图形。现在我必须将这个几何图形旋转到它的自轴,即它应该像地球一样旋转。我不想移动相机,但我想移动几何。 有人可以帮忙吗?现在的代码是这样的: var myGeometry = new THREE.Geometry();

for(i=0;i<n;i++)
{
   vertex.x = green_arr[i];
   vertex.y = green_arr[i+1];
   vertex.z = green_arr[i+2];
   myGeometry.vertices.push( vertex );
}
var particleCube = new THREE.PointCloud( myGeometry, shaderMaterial );
particleCube.dynamic = true;
particleCube.sortParticles = true;
scene.add( particleCube );

我要轮换

var time = Date.now() * 0.0004;
scene.children[0].rotation.y = time;
scene.children[0].rotation.z = time * 0.7;

但这会在我不想要的屏幕上旋转我的观点。我想围绕自己的轴旋转它们

【问题讨论】:

    标签: three.js point-clouds


    【解决方案1】:

    你是否试图围绕它自己的本地位置旋转每个顶点?还是围绕PointCloud的位置?

    看起来您当前的代码围绕其原点旋转了整个系统。 如果您希望每个点围绕它自己的局部轴旋转,您可以尝试将它们添加到自己的单独数组中并在渲染函数中循环遍历:

    for(var p=0; p<particleCube.geometry.length; p++){
         particleCube.geometry.vertices[p].rotation.y=time;
         particleCube.geometry.vertices[p].rotation.z=time*0.7;
    }
    

    否则你可以试试

    particleCube.rotation.y=time; particleCube.rotation.z=time*0.7;

    【讨论】:

    • 嗨,谢谢你的回复我有类似这样的代码jsfiddle.net/r7ocy1ff这个现在不工作我想要点云的几何旋转,比如轨迹球旋转。我尝试使用四元数,也沿轴旋转,但这不是我想要的,沿轴的旋转对我有用,但不是旋转 360 度。旋转也应该只在鼠标上/下。
    • 嗨,我可以让它沿着轴旋转,这对我来说现在很好。现在谁能帮我在鼠标移动时实现这一点,因为这个旋转只在一个方向旋转可能是 360 度,但我仍然无法在 mousemove 上控制它
    猜你喜欢
    • 2020-03-10
    • 2013-11-06
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多