Javascript 轨道控制:更新';助手';
我正在尝试管理一个3D对象,使控件目标可视化,以使旋转和缩放更容易理解 使用AxisHelper,它应该指示目标并保持相同的大小。在OrbitControls.js中,我添加的每一行都有注释 如您所见,如果平移和缩放(右键单击并滚动),它也会管理光标,但“助手”有两个问题:Javascript 轨道控制:更新';助手';,javascript,3d,three.js,Javascript,3d,Three.js,我正在尝试管理一个3D对象,使控件目标可视化,以使旋转和缩放更容易理解 使用AxisHelper,它应该指示目标并保持相同的大小。在OrbitControls.js中,我添加的每一行都有注释 如您所见,如果平移和缩放(右键单击并滚动),它也会管理光标,但“助手”有两个问题: 辅助对象的位置和比例是在渲染后设置的,这就是为什么它看起来有点弹性。。。如果我将位置/比例更新放在scope.update()函数中,也是一样的 下面的函数将辅助对象缩放为恒定大小,它从单位向量计算定义点(控件的目标)处的
- 辅助对象的位置和比例是在渲染后设置的,这就是为什么它看起来有点弹性。。。如果我将位置/比例更新放在scope.update()函数中,也是一样的
- 下面的函数将辅助对象缩放为恒定大小,它从单位向量计算定义点(控件的目标)处的世界/视图比例。但这似乎不是一个好的解决方案,因为当您滚动到最大缩放时,辅助对象正在增长
var point = new THREE.Vector3( 1, 0, 0 ); point = point.applyMatrix4( scope.object.matrixWorld ); var scale = point.distanceTo( scope.target ); helper.scale.set(scale, scale, scale);
因此,如果你有实现这一目标的想法,欢迎你……我目前正在开发类似于threejs的东西,我认为:
当然,使用精灵会更简单,但目标是显示方向。我使用Axishelper,但使用网格时,我会遇到相同的“缩放”问题。。。