Three.JS的轨迹球中'this.object.position'的语义是什么?

时间:2013-07-05 19:15:02

标签: javascript dom graphics user-controls three.js

我花了一些时间试图找出this.object.position应该在此Trackball控件中表示的内容:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/TrackballControls.js

作者不仅保存了位置的原始值(用于重置目的),而且还在每个帧之后每当位置改变时跟踪lastPosition。

... // the first half of the constructor

var lastPosition = new THREE.Vector3();

... // more initialization


// for reset
this.position0 = this.object.position.clone();

起初我认为它代表相机的位置,但也有一个'this.eye'变量,所以这将是一个冲突。然后我认为它与DOM上绘图表面的位置有关,但由于它是一个3号向量,理论也没有太大的重量。

我知道这可能是一个愚蠢的问题,但我真的很感激在正确的方向上推动。

感谢您阅读

1 个答案:

答案 0 :(得分:1)

this.object.position是相机位置。 (见注)

this.eye是从this.targetthis.object.position的向量。目标是相机旋转的点。

_eye.subVectors( _this.object.position, _this.target );

注意:假设相机是另一个已翻译或旋转的对象的子项 - 在这种情况下,控件将无法正常工作。

three.js r.58