cor*_*zza 3 python simulation math coordinates
我正在制作一个简单的模拟程序,但遇到了一些问题……模拟世界的居民有 4 只眼睛:左、上、右和下。一次只有一只眼睛可以活动,并且这只眼睛需要指向最近物体的方向(基本上告诉居住者是左、上、右或下最近的物体)。每只眼睛在坐标系中都有它的象限,它从主坐标系旋转 45 度。所有的数字(位置、坐标)实际上都与未旋转的坐标系有关,我只是使用旋转的坐标系来解释,它实际上并不存在。
这是一张可以更好地解释它的图片:
那么,最后一个问题是:如何找出物体在这些象限中的哪一个?给定对象在未旋转坐标系中的位置。
附加信息:
设x , y是物体在非旋转坐标系中的坐标,平移后眼睛位于原点。您可以利用两个线性函数的基本属性,它们的图表将您的模拟空间划分为您绘制的四个象限(“左”、“上”、“右”和“下”)。
从左下角到右上角的倾斜线由y=x给出。这意味着(假设y向上增长并且x向右增长)位于“向下”和“向右”象限中的点具有满足y < x 的坐标。类似地,“上”和“左”象限中的点具有满足y > x 的坐标。
为了区分“下”和“右”以及“上”和“左”象限,我们可以使用另一条线(从左上角到右下角),其公式为y=-x。这次我们看到属于“左”和“下”象限的点具有服从y < -x 的坐标。类似地,属于“右”和“上”象限的点具有满足y > -x 的坐标。
结合这些条件,我们看到坐标为x , y的对象位于:
这些条件假设所有四个象限相交的点是用于表示x和y的坐标系的原点。在使用这些条件之前,您应该使用眼睛的已知位置执行必要的平移。
请注意,如果要相对于不同位置的几只眼睛执行此过程,则每次必须使用不同的平移。这样做的一个不良后果是,您可能会从两只不同的眼睛看到相同物体的不同象限。这是问题的结果,与您如何解决它无关。
您还需要对恰好位于象限边界上的对象进行分类。选择将要求您更改上面的一些严格的不等式,以便它们允许相等。
| 归档时间: |
|
| 查看次数: |
2899 次 |
| 最近记录: |