Math 视锥可视化

Math 视锥可视化,math,trigonometry,frustum,Math,Trigonometry,Frustum,给定摄影机的3D位置、摄影机的3D目标位置(摄影机指向的点)、距摄影机的远平面距离、视野和纵横比,如何计算远平面中的四个3D点?基本三角学应该可以做到这一点,但我没有得到准确的结果。这可能是2D中的基本三角学,但3D中的问题要复杂一些。我没有具体的答案,但这可能会给你一些探索的途径 具体步骤如下: 求镜像平面的方程 找到视场半径 求FOV圆的方程 找到圆上与纵横比对应的四个点 该圆所在的平面可以通过a获得,然后允许您在3D中确定该圆的方程式(点是相机的位置,矢量是相机和目标之间的线) 圆的半径可

给定摄影机的3D位置、摄影机的3D目标位置(摄影机指向的点)、距摄影机的远平面距离、视野和纵横比,如何计算远平面中的四个3D点?基本三角学应该可以做到这一点,但我没有得到准确的结果。

这可能是2D中的基本三角学,但3D中的问题要复杂一些。我没有具体的答案,但这可能会给你一些探索的途径

具体步骤如下:

  • 求镜像平面的方程
  • 找到视场半径
  • 求FOV圆的方程
  • 找到圆上与纵横比对应的四个点
  • 该圆所在的平面可以通过a获得,然后允许您在3D中确定该圆的方程式(点是相机的位置,矢量是相机和目标之间的线)

    圆的半径可以通过关系
    r=d tan(θ/2)
    确定,其中d是相机和目标之间的距离,θ是FOV角度,单位为度

    这个方程可以根据半径和法向量来定义

    最后,您需要找到具有给定纵横比的矩形,四个点是矩形和圆的交点

    你还需要考虑相机是否倾斜或是否平整。这将更改点,但它们仍位于同一圆/平面上


    根据您的目标,如果相机始终位于(0,0,0)并与其中一个轴对齐(即目标位于其中一个轴上),这可能有助于简化问题。

    这可能是2D中的基本触发器,但3D中的问题更为复杂。我没有具体的答案,但这可能会给你一些探索的途径

    具体步骤如下:

  • 求镜像平面的方程
  • 找到视场半径
  • 求FOV圆的方程
  • 找到圆上与纵横比对应的四个点
  • 该圆所在的平面可以通过a获得,然后允许您在3D中确定该圆的方程式(点是相机的位置,矢量是相机和目标之间的线)

    圆的半径可以通过关系
    r=d tan(θ/2)
    确定,其中d是相机和目标之间的距离,θ是FOV角度,单位为度

    这个方程可以根据半径和法向量来定义

    最后,您需要找到具有给定纵横比的矩形,四个点是矩形和圆的交点

    你还需要考虑相机是否倾斜或是否平整。这将更改点,但它们仍位于同一圆/平面上

    根据您的目标,如果相机始终位于(0,0,0)并与其中一个轴对齐(即目标位于其中一个轴上),则可能有助于简化问题