【发布时间】:2017-05-26 00:08:00
【问题描述】:
我正在制作一个 3d 指南针,用于在 three.js 中跟踪相机的运动。 Here's an image of the compass
在图像中,饼图是相机的 FOV,而粉红色的小圆圈是场景中的对象。场景是一个球体,物体都沿着球体的边缘。给定对象的 x、y 和 z 位置,我如何获得二维圆中的相对位置?我试着得到角度:
yAngle = Math.atan(xpos / zpos) 然后通过执行以下操作获得圆上的 x 和 y 位置:x = radius * Math.cos(yAngle), y = radius * Math.sin(yAngle),但这并没有获得正确的位置。我想我可以用 three.js 投影做点什么?
我真的很感激一些帮助:)
【问题讨论】:
-
由于您的指南针是 2D 的,它是否被视为您相机方向的自上而下表示?假设是,你的相机的运动是平面的,还是你需要指出一个物体是否在相机的地平线之上/之下?
-
不——因为它是 2d,我将忽略相机水平线的上方/下方 :)
标签: javascript 3d three.js