我的问题部分是学术性的,所以它不属于这里,但由于我只想要扭曲圆环的代码方面,我希望没有人介意我在这里提出这个问题。我最终对所谓的“网格单元”进行建模,它们是重复的活动模式。但是我需要在这里将一个 2D 平面的子集包裹到一个圆环上,这样在六个方向中的任何一个方向上行走都会返回一个回到起点。
圆环方法:取一张方形纸,将顶部和底部粘在一起,得到一个管子。然后用胶带粘住管子的左右两端,得到一个甜甜圈。现在,如果您从纸的中心(现在是一个甜甜圈)开始,如果您朝 8 个方向中的任何一个方向移动:
- ñ
- 网元
- 乙
- 东南
- 小号
- 西南
- W
- 西北
您将在甜甜圈周围转一圈,然后返回起始位置。
现在,如果您为这张“方形纸”选择特定尺寸,假设为 10x10,那么对于尺寸为 100x100 的环境,即使在环境中沿直线行驶时,人们也会在“环面”周围循环 10 次,然后返回同一点。这里的好处是环境可以无限扩展,环面会通过简单地盘旋更多次来做出反应
代码很简单,因为它只涉及计算环境坐标,修改“方形纸”的宽度/长度。问题在于,根据毕达哥拉斯法则,对角线的行程 (NE,SE,SW,NW) 将比其他四个方向 (N,E,S,W) 长。为了解决这个问题,我们使用等边三角形或六边形网格,这样如果一个人在六个方向中的每一个方向上都行进,那么行进的距离将是相同的:
Twisted Torus:取一张纸,并以某种方式将其粘在一起,使以下六个方向的行进距离相同:
- 0
- 60
- 120
- 180
- 240
- 300
问题是我找不到任何关于如何制作扭曲圆环的直接解释。我查看了以下内容,它们对我来说太模糊了
谁能向我提供一小段代码来说明我如何实现这一点?干杯
编辑我需要的是将连续空间映射到扭曲的圆环上,这样在环境中六个方向中的任何一个方向上行驶都会定期返回到“方纸”中的同一位置。