mee*_*tar 9 vector linear-algebra three.js
我试图了解向量和lookAt()如何在three.js中一起工作.我正在设置此axisHelper的向上矢量,以便Y轴始终指向目标地理位置,这标记向上矢量的位置.它对X和Y有预期的作用,绕Z轴旋转轴; 当我尝试调整向上矢量的Z值时,我希望轴绕X轴旋转,但没有任何反应.
http://jsfiddle.net/68p5r/4/ [编辑:我添加了geo来显示目标位置.]
我有一个dat.gui接口操纵向上矢量来演示,但是当我手动设置向量时也存在问题.
我怀疑问题出在第74行:
zControl.onChange(function(value) {
axes.up.set(this.object.x, this.object.y, value);
axes.lookAt(new THREE.Vector3(0, 0, 1));
});
Run Code Online (Sandbox Code Playgroud)
当我更新向上矢量时,我指示axisHelper通过沿其Z轴重做其lookAt()来更新其在屏幕上的方向.改变X和Y按预期工作,为什么不是Z?
(如果我使用geo而不是axisHelper也是如此:http://jsfiddle.net/68p5r/5/)

调用时Object.lookAt( vector ),旋转对象使其内部z轴指向目标vector.
但这还不足以指定对象的方向,因为对象本身仍然可以在其z轴上"旋转".
因此,对象随后"旋转",使其内部y轴位于其内部z轴和up矢量的平面中.
目标矢量和up矢量一起足以唯一地指定对象的方向.
three.js r.63
提示:three.js中的轴应始终具有单位长度; 一定要在代码中调用axis.normalize().
| 归档时间: |
|
| 查看次数: |
8270 次 |
| 最近记录: |