在3D世界中,摄像机向外看会创建所见事物的2D表示,即图片。查看3D立方体将产生此2D图像:
但是,在2D世界中,摄像机向外看会创建一维像素线,以表示所看到的内容。
此场景中的相机:
考虑一下相机向外看。它将无法看到所有的粉红色形状,因为大部分被红色形状所阻碍。它只会看到没有阻碍的部分。另外,距离较远的物体看起来更小。
我如何创建2D相机的视线,以观察2D世界并创建1D图像?
我正在寻找一种方法(最好是在Python中)来完成此任务。我正在尝试对我正在模拟的某些2D生物执行此操作。我希望他们的输入是一维数组,代表他们对世界的看法。
答案 0 :(得分:1)
在生物上选择一个焦点。在其周围画一个圆。将图像分辨率中每个像素的圆细分,然后将光线从焦点投射到圆点,然后投射到整个世界。找到该射线与世界对象之间的交点。获取最接近的颜色,以将图像中的颜色设置为该像素。对每个像素重复。
这提供了360度的透视图,可以简化模拟生物的工作。如果您想要更具方向性的视图,只需使用圆弧而不是圆即可。 45度似乎合理。