Python 如何创建二维摄影机查看二维世界的视觉效果

Python 如何创建二维摄影机查看二维世界的视觉效果,python,arrays,camera,2d,perspective,Python,Arrays,Camera,2d,Perspective,在3D世界中,向外看的相机将创建它所看到的东西的2D表示,即图片。查看3D立方体将生成此2D图像: 然而,在2D世界中,向外看的相机将创建一条1D像素线,代表它所看到的东西 此场景中的摄影机: 将生成此1D“图像”: 想象一下摄像机向外看。它将无法看到所有的粉红色形状,因为大部分都是红色形状。它只能看到无障碍的部分。此外,距离更远的对象看起来更小 如何创建二维摄像机的视图,查看二维世界,创建一维图像? 我正在寻找一种方法,最好是用Python来实现这一点。我正在尝试对一些我正在模拟的2D生

在3D世界中,向外看的相机将创建它所看到的东西的2D表示,即图片。查看3D立方体将生成此2D图像:

然而,在2D世界中,向外看的相机将创建一条1D像素线,代表它所看到的东西

此场景中的摄影机:

将生成此1D“图像”:

想象一下摄像机向外看。它将无法看到所有的粉红色形状,因为大部分都是红色形状。它只能看到无障碍的部分。此外,距离更远的对象看起来更小

如何创建二维摄像机的视图,查看二维世界,创建一维图像?


我正在寻找一种方法,最好是用Python来实现这一点。我正在尝试对一些我正在模拟的2D生物进行此操作。我希望他们的输入是代表他们世界观的一维阵列。

在生物上选择一个焦点。在它周围画一个圈。在图像分辨率中为每个像素细分圆,并将光线从焦点投射到圆点,再投射到世界。查找该光线与世界对象之间的交点。获取最接近的颜色以在该像素处设置图像中的颜色。对每个像素重复此操作


这提供了一个360度透视图,可以简化模拟生物的操作。如果您想要一个更具方向性的视图,只需使用圆弧而不是圆。45度似乎是合理的。

这对于堆栈溢出来说是相当广泛的。我概述了我要尝试的算法。在这个级别上,它不是真正特定于Python的。但是,如果您在概述的任何步骤中遇到问题,您将不得不提出一个新的、更具体的问题,最好是使用您的代码示例。因为您没有明确提到它,所以我只想添加一个短语,以便在这一方向进行进一步的研究:光线跟踪。谢谢这种方法似乎很管用。另外,你可以很容易地改变生物视觉的“分辨率”。