【发布时间】:2015-09-25 08:57:32
【问题描述】:
我正在尝试调整this 代码(它本身是this 的实现)。我已经完成了一般的可视化和渲染工作,但我现在正在尝试为一些逼真的运动制作动画。
光源的点由归一化向量确定(例如THREE.Vector3(1, 0.75, 0)。光线看起来像是来自右上角)。现在我想做的是让矢量围绕球体旋转,使得球体似乎围绕光源运行。但我无法弄清楚如何做到这一点。我试过更新/改变向量的位置。但我不确定如何计算正确的下一个x,y,z 值。我尝试过应用欧拉角和旋转矩阵,如下所示:
euler = new THREE.Euler(f,g,h, 'XYZ');
matrix = new THREE.Matrix4().makeRotationFromEuler(euler);
light = vector.applyMatrix4(matrix);
但在这里,我不确定如何获得 f,g,h 的正确值,这样光线就不会只是在球体周围摆动。
我是否走在正确的轨道上?
【问题讨论】:
-
Few cmets : - 控制台打印 `Cannot read property 'applyMatrix4' of undefined :您必须在第 210 行将 'vector' 替换为 'light'; - 你的动画功能没用; - 您的光矢量未标准化:标准化矢量的长度为 1。您可以在 three.js 中使用 light.normalize()
标签: javascript three.js