首页 > 解决方案 > 如何创建 2D 相机观察 2D 世界的视觉

问题描述

在 3D 世界中,向外看的相机将创建它所看到的 2D 表示,也就是图片。查看 3D 立方体会生成以下 2D 图像:

立方体图像

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

此场景中的相机:

场景中的相机

会产生这个一维“图像”: 一维图片

想想相机向外看。它将无法看到所有粉红色的形状,因为它的大部分被红色的形状挡住了。它只会看到通畅的部分。此外,更远的物体看起来更小。

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

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

标签: pythonarrayscamera2dperspective

解决方案


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

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


推荐阅读