【问题标题】:Rotate the camera around an object using the arrow keys in Three.js使用 Three.js 中的箭头键围绕对象旋转相机
【发布时间】:2012-10-23 21:30:20
【问题描述】:

假设我有一个大立方体,每个面上都有一些对象(有点像谷歌地图立方体http://www.playmapscube.com/)。我希望能够使用箭头键围绕立方体旋转相机,而不是单独旋转所有对象。

所以左箭头会将相机向左移动,因此立方体将向右转,依此类推。

我已经翻遍了,没有发现任何关于用键盘做的事情。

【问题讨论】:

  • 到目前为止你尝试过什么?希望你不只是盲目地复制粘贴东西......
  • 我尝试增加相机的 X 和 Y 位置(左/右),然后使用camera.lookAt(scene.position) 更新相机,但这增加了相机离中心的距离现场……有什么特殊的方法我应该使用吗?

标签: javascript three.js perspectivecamera


【解决方案1】:

根据您的评论,我假设这只是一道数学题。

使用箭头键更改变量theta 的值,然后在渲染循环中执行以下操作:

camera.position.x = 15 * Math.cos( theta );
camera.position.y = 10;
camera.position.z = 15 * Math.sin( theta );

camera.lookAt( scene.position );

【讨论】:

  • 这对左右转非常有用。我将如何将它从当前位置上下翻转?
  • 来吧,伙计,你可以弄清楚的。 :-) 试试球坐标。
  • 好的,我这就去。 camera.position.y = 500 * Math.sin(theta); camera.position.x = 500 * Math.cos(theta) * Math.cos(phi); camera.position.z = 500 * Math.cos(theta) * Math.sin(phi); 但是,当相机到达最高点或最低点时,它开始向另一方向返回..?
  • 果然。你必须远离两极。
  • 那么有没有办法可以无限上下旋转呢?
猜你喜欢
  • 2013-08-30
  • 1970-01-01
  • 2017-07-14
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 2016-11-23
  • 1970-01-01
  • 2019-01-26
相关资源
最近更新 更多