如何创建 2D 相机观察 2D 世界的视觉

How to create the vision of a 2D camera looking at a 2D world

在 3D 世界中,向外看的相机会创建它所见事物的 2D 表示,也就是图片。查看 3D 立方体会产生此 2D 图像:

但是,在 2D 世界中,向外看的相机会创建一维像素线,代表它所看到的。

此场景中的摄像机:

会产生这个 1D "image":

想想相机往外看。它将无法看到所有的粉红色形状,因为大部分被红色形状遮挡。它只会看到没有被遮挡的部分。此外,距离较远的物体显得较小。

如何创建 2D 相机的视图,观察 2D 世界,创建 1D 图像?

我正在寻找一种方法,最好是在 Python 中,以实现此目的。我正在尝试对我正在模拟的一些 2D 生物执行此操作。我希望他们的输入是代表他们对世界的看法的一维数组。

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

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