Java 我如何使用它来计算相机所看到的点';什么是轮换?

Java 我如何使用它来计算相机所看到的点';什么是轮换?,java,kotlin,libgdx,rotation,Java,Kotlin,Libgdx,Rotation,我有一个摄像头,它正在观察下面的二维平面 我知道下面世界的大小,以及相机相对于它的位置 我希望将相机旋转x度,但相机不能直接旋转-我只能告诉它看空间中的一个点 因此,我正在寻找一个函数,它将旋转的x°转换为y坐标,但我很难找到合适的搜索词 蜡笔可视化辅助工具: 具体地说,我正在寻找函数式-但如果我的引擎中已经有一些我不知道的实现,我将使用LibGDX实现。让我们定义一些我认为您知道的组件: d-从相机到二维平面的距离 y0-摄像机在2D平面上的投影位置(图中90度线与平面相交的位置)。这在坐

我有一个摄像头,它正在观察下面的二维平面

我知道下面世界的大小,以及相机相对于它的位置

我希望将相机旋转
x
度,但相机不能直接旋转-我只能告诉它看空间中的一个点

因此,我正在寻找一个函数,它将旋转的
转换为
y
坐标,但我很难找到合适的搜索词

蜡笔可视化辅助工具:


具体地说,我正在寻找函数式-但如果我的引擎中已经有一些我不知道的实现,我将使用LibGDX实现。

让我们定义一些我认为您知道的组件:

  • d
    -从相机到二维平面的距离
  • y0
    -摄像机在2D平面上的投影位置(图中90度线与平面相交的位置)。这在坐标系中很可能是0,但为了完整起见,我们保留它
  • angleFromHorizontal
    -图表中定义的所需角度(以度为单位)(介于0独占和180独占之间)
y位置的公式如下所示:

导入kotlin.math.PI
导入kotlin.math.tan
val angleFromNormal=90.0-水平角度
val y=d*tan(与法线的角度*PI/180)+y0
实际上,你甚至不需要角度的“反转”。只需反转切线即可:

导入kotlin.math.PI
导入kotlin.math.tan
val y=d/tan(与水平线的角度*PI/180)+y0

让我们定义一些我认为您知道的组件:

  • d
    -从相机到二维平面的距离
  • y0
    -摄像机在2D平面上的投影位置(图中90度线与平面相交的位置)。这在坐标系中很可能是0,但为了完整起见,我们保留它
  • angleFromHorizontal
    -图表中定义的所需角度(以度为单位)(介于0独占和180独占之间)
y位置的公式如下所示:

导入kotlin.math.PI
导入kotlin.math.tan
val angleFromNormal=90.0-水平角度
val y=d*tan(与法线的角度*PI/180)+y0
实际上,你甚至不需要角度的“反转”。只需反转切线即可:

导入kotlin.math.PI
导入kotlin.math.tan
val y=d/tan(与水平线的角度*PI/180)+y0

我不确定我是否明白这个问题,你是在寻找这个问题的三角公式吗?或者特殊的库函数?抱歉,如果我不够清楚的话,我想要的是数学公式。我还是回答了,但我相信这更适合数学论坛如果你想要的是一个基本三角问题的数学公式(这里不是编程问题)明白了,下次我会记住这一点!你可以用三角法来做这件事,但我做的是从相机的中心投射一条光线,然后在一个平面上用该光线相交。我不确定我是否明白这个问题,你是在寻找三角公式吗?或者特殊的库函数?抱歉,如果我不够清楚的话,我想要的是数学公式。我还是回答了,但我相信这更适合数学论坛如果你想要的是一个基本三角问题的数学公式(这里不是编程问题)明白了,下次我会记住这一点!你可以用三角法来做这件事,但我所做的是从相机中心投射一条光线,并在一个平面上使用该光线进行相交。我需要做一些微调才能确认,但粗略的实现看起来已经很有希望了。非常感谢你!在确认之前,我需要做一些微调,但是粗略的实现看起来已经很有希望了。非常感谢你!