如何在2D世界中创造2D相机的视觉效果

时间:2018-07-21 16:11:50

标签: python arrays camera 2d perspective

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

Cube image

但是,在2D世界中,摄像机向外看会创建一维像素线,以表示所看到的内容。

此场景中的相机:

Camera in Scene

将产生此一维“图像”: 1D picture

考虑一下相机向外看。它将无法看到所有的粉红色形状,因为大部分被红色形状所阻碍。它只会看到没有阻碍的部分。另外,距离较远的物体看起来更小。

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

我正在寻找一种方法(最好是在Python中)来完成此任务。我正在尝试对我正在模拟的某些2D生物执行此操作。我希望他们的输入是一维数组,代表他们对世界的看法。

1 个答案:

答案 0 :(得分:1)

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

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