相关疑难解决方法(0)

23
推荐指数
1
解决办法
3万
查看次数

three.js - 如何围绕特定点旋转圆柱体?

我已经提到了以下关于对象旋转的问题.

但是无法准确理解如何围绕特定点旋转圆柱体?

three.js

8
推荐指数
2
解决办法
2万
查看次数

three.js围绕Y轴旋转Object3d

我有一个Object3dThree.JS这是一组有些网格对象.
我想围绕Y轴旋转这个组,在它的中心,远离世界中心(0,0,0).
我只知道Group.rotate.y += deg代码,但是对于每个轴方向,它总是围绕(0,0,0)旋转对象,而不是我的组中心!
我怎样才能解决这个问题?

更新:

阅读评论

3d rotation three.js

8
推荐指数
2
解决办法
3万
查看次数

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

我修改了这个旋转立方体,使其在Object3D中包含3个立方体

http://jsfiddle.net/VsWb9/1243/

在上面的例子中,它使用第一个立方体.我需要它在对象的正中心的单个轴上旋转.

object3D代码

  geometry = new THREE.CubeGeometry(50, 50, 50);
    material = new THREE.MeshNormalMaterial();
    mesh = new THREE.Object3D();
    mesh1 = new THREE.Mesh(geometry, material);
    mesh1.position.x = 50;
    mesh2 = new THREE.Mesh(geometry, material);
    mesh2.position.x = 100;
    mesh3 = new THREE.Mesh(geometry, material);

    mesh.add(mesh1);
    mesh.add(mesh2);
    mesh.add(mesh3);

    scene.add(mesh);
Run Code Online (Sandbox Code Playgroud)

这是轮换

  mesh.rotation.x += 0.01;
  mesh.rotation.y += 0.02;
Run Code Online (Sandbox Code Playgroud)

编辑:只是说这是一个演示问题的例子,我的实际代码对象包含许多不同大小的形状.

three.js

6
推荐指数
1
解决办法
1万
查看次数

Three.js - 环面不围绕 0z 轴旋转

我尝试torus沿 2 个轴旋转:Ox 和 Oz。我想通过dat.gui鼠标修改的滑块来应用此旋转。

我已经定义了torus

var geometryTorus = new THREE.TorusGeometry( radius, 2*widthLine, 100, 100 );
var materialLine = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
torus = new THREE.Mesh( geometryTorus, materialLine );
scene.add(torus);
Run Code Online (Sandbox Code Playgroud)

我的问题是沿旋转Ox axis工作正常,但沿旋转的情况并非如此Oz axis

我通过调用以下函数来旋转圆环:

// Change great circle parameters
function changeGreatCircle(thetax, thetaz) {

// Update rotation angles 
torus.rotation.x = thetax;
torus.rotation.z = thetaz; 

}
Run Code Online (Sandbox Code Playgroud)

对于上述函数,我调用了render('init')计算相机位置的函数。

如何使这个环面旋转Oz axis?为什么它是顺转而Ox axis不是顺转Oz axis …

javascript rotation three.js dat.gui

5
推荐指数
1
解决办法
1317
查看次数

围绕给定轴和角度的枢轴点正确旋转对象

在 Three.js 中似乎有相当多的旋转方式,我个人觉得不是很直观。请参阅示例
http://cloud.engineering-bear.com/apps/robot/robot.html 机器人图片

当我对多个对象应用旋转时,我得到了非常奇怪的意想不到的效果。例如,当我旋转已相互添加的对象并开始旋转父对象时,各个对象将突然彼此以不同的方式放置,而不是它们原来的位置。我现在正在尝试分组,并希望避免同样的效果。

请参阅http://pi-q-robot.bitplan.com/example/robot?robot=/models/thing3088064.json了解当前的情况,并查看https://github.com/BITPlan/PI-Q-Robot了解更多信息源代码。

因此,我根据不同的 API 选项搜索了正确的示例:

回转

function renderScene() {
    stats.update();
    //side1.rotation.z += 0.02;
    pivot.rotation.z += 0.02;
Run Code Online (Sandbox Code Playgroud)

轴旋转

绕世界轴旋转

   object.rotateAroundWorldAxis(p, ax, r * Math.PI * 2 / frames);
Run Code Online (Sandbox Code Playgroud)

在世界轴上旋转

object.rotateOnWorldAxis( axis, angle );
Run Code Online (Sandbox Code Playgroud)

旋转关于点

设置从轴角度旋转

setEulerFrom四元数

   quaternion = new THREE.Quaternion().setFromAxisAngle( axisOfRotation, angleOfRotation );
   object.rotation.setEulerFromQuaternion( …
Run Code Online (Sandbox Code Playgroud)

rotation inverse-kinematics three.js

5
推荐指数
1
解决办法
2834
查看次数