相关疑难解决方法(0)

Three.js - 我可以将位置,旋转和比例应用于几何体吗?

我想编辑一个物体的位置,旋转和比例矢量,然后将它们"应用"到几何体上,这会使这些矢量归零,但保留变换.

例如,假设我导入一个边长为1的立方体.立方体的最小和最大顶点位于(0, 0, 0)(1, 1, 1).我将对象的比例设置为(2, 2, 2),然后将变换应用于几何.

应用后,比例将重置为(1, 1, 1),并且立方体的最小和最大顶点分别为(0, 0, 0)(2, 2, 2).

有没有一些内置的方法来做到这一点?

three.js

12
推荐指数
1
解决办法
7169
查看次数

设置对象围绕世界轴的绝对旋转

更新:添加了一个jsfiddle来说明:

的jsfiddle

我有一个放置在场景中的对象(立方体).我的目标是提供3个角度,代表物体在现实世界中的方向.角度将根据实际的X,Y和Z轴进行测量.我失败(悲惨)是如何给对象这些角度,然后随着数据的变化,设置对象以接收新的三角形.我似乎发现的是,当我设置一组初始角度时,一切都很好,但是当我设置一组新角度时,它们似乎相对于局部对象空间方向而不是世界空间进行设置.我试图理解在这个领域提出的一些类似问题,但这些问题似乎是关于围绕轴旋转对象而不是明确地将对象的角度设置为世界轴.

当我的x,y或z角度的值发生变化时,我正在调用:

cube.rotation.set(x, y , z, 'XYZ');
Run Code Online (Sandbox Code Playgroud)

为了进一步说明,这里是我的立方体的屏幕截图...没有改变X或Y,我绕Z旋转90 ...看到之前和之后的两个图像

在此输入图像描述

在此输入图像描述

注意旋转是如何围绕紫色面的法线方向发生的,而不是围绕世界Z轴...

我很难过:-(

javascript rotation three.js

7
推荐指数
1
解决办法
2605
查看次数

x和z的threejs旋转单独工作但一起失败

我需要围绕x和z轴旋转钻石(见附件).当单独旋转时(意味着我只设置rotation.x或rotation.z),旋转看起来很好并且可以正常工作.但是当我设置两个旋转(x和z)时,旋转看起来像这样:

钻石旋转失败

我错过了什么吗?某种程度上是对象局部坐标系旋转,现在围绕2轴旋转失败?

diamond.position = brilliantPositions[i][0];
diamond.rotation = brilliantPositions[i][1];
this.frames.arrangementMesh.add(diamond);
Run Code Online (Sandbox Code Playgroud)

提前感谢您的提示亲切的问候罗马和帕特里克

webgl three.js

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

绕局部轴旋转

我正在尝试实现一个对象,围绕一个位置(POI - 兴趣点)飞行并面向它。当您按 WASD 时,您可以更改 POI 的旋转。A 和 D -> 更改 y 轴,W 和 S 更改 x 轴。

正如您在演示 ( http://jsbin.com/yodusufupi ) 中看到的,y 轴旋转是基于辅助对象的局部旋转完成的,但 x 轴是在全局空间中计算的。设置旋转是通过以下方式完成的:helper.rotation.set(rotX, rotY, 0);

我做错了什么?我希望这两个旋转都在本地空间中完成。

谢谢!

PS:最小工作示例(绕 Y 的旋转似乎是正确的,而 x 轴是全局计算的)

var scene = new THREE.Scene();

var DEG_2_RAD = Math.PI / 180;
var rotX = -45 * DEG_2_RAD;
var rotY = 45 * DEG_2_RAD;

var helper = new THREE.AxisHelper(2);
var cam = new THREE.AxisHelper(1);
helper.add(cam);
scene.add(helper);

cam.translateZ(4);

var camera = new THREE.PerspectiveCamera( 75, window.innerWidth …
Run Code Online (Sandbox Code Playgroud)

javascript three.js

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

标签 统计

three.js ×4

javascript ×2

rotation ×1

webgl ×1