首页 > 解决方案 > Python-在给定距离的特定范围内创建网格位置列表

问题描述

两种情况

我有 x 轴大小、y 轴大小、渲染距离、网格位置编号列表和中心网格位置。

我正在尝试创建中心网格位置的渲染距离内的所有网格位置的列表。

x 和 y 轴的大小可以独立地不同。最佳情况下,该算法不会尝试获取渲染距离超出 x 或 y 轴一侧的位置。

谢谢。

标签: pythonmath

解决方案


我写这篇文章是为了帮助您以我会解决的方式回答您自己的问题。与编码中的任何事情一样,您需要做的是能够将一个大问题分解为多个较小的问题。

  1. 设计两个函数来转换 ( x, y) 坐标(可选,它会让你的生活更轻松,但不会那么高效,我个人会避免这种挑战)。

  2. 给定n,sizedistance, 计算up, down,leftright. 如果不同轴的尺寸不同,则只需提供正确的功能即可。

例如。

def right(n, size, distance):
    return n + size * distance

def down(n, size, distance):
    return n - distance
  1. 给定size,确保上述函数不会超出网格边缘。将此部分的点转换为(x, y)坐标可能会有所帮助。

  2. 现在你有了正方形的边,再次运行函数来得到边角。例如,要获得右上角,您可以执行right(up(*args))up(right(*args))

  3. 有了角落,您现在可以计算出您的正方形中有什么。将点转换为(x, y)坐标会更容易。


推荐阅读