【问题标题】:How to calculate local rotation to keep text upright?如何计算局部旋转以保持文本直立?
【发布时间】:2013-01-24 12:09:22
【问题描述】:

我在屏幕上显示始终面向用户的文本,并使用以下代码保持直立(这是有效的):

object.lookAt(camera.position);
object.rotation.x = 相机.rotation.x;
object.rotation.y = camera.rotation.y;
object.rotation.z = camera.rotation.z;

现在,在按钮将场景绕 y 轴旋转 90 度后,

target = new THREE.Vector3(camera.position.z, camera.position.y, -camera.position.x);

object.lookAt(目标);

所以文本根据需要面向用户,但我不知道如何计算对象旋转以在使用轨迹球控件旋转场景时保持文本垂直:

object.rotation.x = ??
object.rotation.y = ??
object.rotation.z = ??

建议?谢谢!

【问题讨论】:

  • 不知道你用的是哪个库。通常 LookAt 有一个可选参数来指定 up 向量。
  • r52,我如何正确“起床”?
  • 你应该取相机的向上向量
  • 我试过lookAt(target, [], camera.up),当我使用轨迹球控件移动时,它没有保持直立

标签: rotation three.js


【解决方案1】:

最简单的解决方案是改用THREE.OrbitControls

然后,在你的渲染循环中:

object.quaternion.copy( camera.quaternion );

three.js r.69

【讨论】:

  • 我试过这个,但后来这个物体变成了我相机的焦点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多