vector - 如何将 3D 空间坐标转换为 2D 空间坐标?

标签 vector 3d 2d transform space

我正在使用 Lua API。我正在尝试将 3D 空间坐标转换为 2D 空间坐标。我问过谷歌,但除了使用 OpenGL 函数的片段之外,我找不到任何东西。我不需要源代码或任何简单的方法吗?如果有帮助,我可以获得相机的视角,要转换的原始位置,窗口大小和纵横比吗?在此先感谢您的任何建议 :)

最佳答案

如果您正在谈论将世界空间 (x,y,z) 坐标转换为屏幕空间 (u,v) 坐标,那么基本方法是:

u = x / z;
v = y / z;

如果相机不在原点,则在投影矩阵之前通过 View 矩阵变换 (x,y,z)。您可能还想调整相机视角、纵横比等,在这种情况下,我会引用 this Wikipedia article

如果您正在寻找我不熟悉的特定于 Lua API 的东西,我深表歉意。

关于vector - 如何将 3D 空间坐标转换为 2D 空间坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6139451/

相关文章:

c - 给定一个二维数组——我想使用原始数组中的值创建一个新数组

c++ - 带有边界数字的算法设计 : Best Way to Represent a 2D Grid,,用 C++ 编写?

c++ - 在自定义类 vector 中查找

c++ - 为什么 vector 会导致 Segmentation fault 错误?

3d - 从点云检测旋转轴

javascript - PlayCanvas 中的 Pathfinding.js

3d - 高效四元数角速度

c++ - 将一种数据类型的 vector 复制到相同数据类型的结构体 vector 中的有效方法是什么?

c++ - 如何从stringstream中跳过空格和换行符并将它们放入 vector 中?

java - 从坐标列表动态创建 'pretty' 赛道