我一直在考虑如何处理将我的GUI界面放置在3D透视投影中,这样我就可以对我的“2D”界面元素进行3D旋转效果。我一直遇到的问题是难以定位元素并确保它们一次适合视图。
我到目前为止的想法是在空间中定义一个2D四边形以表示“屏幕”表面,并在四边形顶部布局GUI,就像我在2D中布置gui一样。然后我将相机移动到四边形的中心,将相机对准它并沿着四边形表面法线将相机的位置投射一定距离,直到整个四边形适合观察平截头体。问题是我不知道如何找到投影相机位置的最小距离。
任何人都知道找到这个的等式/算法吗?
答案 0 :(得分:1)
你可以简单地做一个循环并增加距离并测量直到它适合......但我认为通过一些基本的触发你可以找到使图像显示一定大小所需的确切距离。
您希望它填充一定大小的正方形。如果您想象一个这样大小的正方形,相机坐在距离(d)一定距离并且在图像中心,那么您将获得所需图像宽度的一半(w),以及相机视角的一半(a),并使用正弦找到距离 - 你知道角度和对面的大小。
所以公式基本上是这样的: d = sin(a)* w