微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何通过围绕相机位置旋转所有点来模拟3D空间中的相机旋转?

如何解决我如何通过围绕相机位置旋转所有点来模拟3D空间中的相机旋转?

目前,我正在使用Python开发一个简单的3D渲染器(我知道,可能不是最佳选择),而且我无法弄清楚如何旋转相机-更准确地说,我无法弄清楚如何指出一点在3D空间中围绕相机的位置旋转。我尝试使用here所述的方法,该方法使用旋转矩阵,但是这似乎只是使这些点围绕它们自身旋转。

例如,如果我在一个有立方体的场景中,而不是立方体绕相机旋转,从而造成了相机旋转的错觉,则立方体将围绕自身旋转,因此看起来就像一个立方体旋转。

希望这是一个显而易见的解决方案,如有必要,我可以发布代码

解决方法

为了绕空间中的任意点旋转:

  • 首先,将该点转换为原点
  • 然后,绕原点旋转
  • 最后,将原点转换回原始点。

给出旋转点p和旋转矩阵R

def rot_about_point(p,R,x):
  return translate(p) @ R @ translate(-p) @ x

上面的代码假设x是列向量(均匀的4向量),因此矩阵在左侧相乘,并且几何变换从右向左读取。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。