使用python计算笛卡尔坐标



从高中开始就没有使用笛卡尔图,我实际上发现需要与现实生活相关的笛卡尔图。这可能是一个奇怪的需求,但我必须将数据分配给笛卡尔图上的点,可以通过调用笛卡尔坐标来访问。图表上需要有无限的点。例如。

                       ^
 [-2-2,a ][ -1-2,f ][0-2,k ][1-2,p][2-2,u]
 [-2-1,b ][ -1-1,g ][0-1,l ][1-1,q][1-2,v]
<[-2-0,c ][ -1-0,h ][0-0,m ][1-0,r][2-0,w]>
 [-2--1,d][-1--1,i ][0--1,n][1-1,s][2-1,x]
 [-2--2,e][-1--2,j ][0--2,o][1-2,t][2-2,y]
                       v

实际值并不重要。但是,假设我在变量 m 上,这将在笛卡尔图上为 0-0。我需要计算笛卡尔坐标,如果我向上移动一个空格,这将使我留在 l 上。

从理论上讲,假设我有一个 python 变量 == ("0-1"(,我相信我需要在 -处拆分它,这将留下 x=0, y=1。然后,我需要执行 (int(y(+1(,然后将 x 重新附加到 y,中间有一个"-"。

我希望能够做的是调用一个带有参数(x+1,y+0(的函数,并让程序执行上述操作,然后返回它计算的笛卡尔坐标。

我实际上不需要检索空间的值,只需要笛卡尔坐标。我想我可以使用 re.sub((,但是我不确定如何正确格式化此函数以围绕"-"进行拆分,我也不确定如何正确执行计算。

我该怎么做?

要表示无限格,请使用将元组 (x,y( 映射到值的字典。

grid[(0,0)] = m
grid[(0,1)] = l
print(grid[(0,0)])

我不确定我是否完全理解这个问题,但我建议使用列表列表来获取 2D 结构。

然后,要查找特定值,您可以coords[x-minX][y-minY]其中 x,y 是您想要的整数索引,minX 和 minY 是最小值(在您的示例中为 -2(。

您可能还想查看 NumPy,它提供了一个更灵活的 n-dim 对象数组类型,允许您"切片"每个轴或获取子范围。如果您不熟悉使用此类数组,NumPy 文档可能会有所帮助。

编辑:要将像0-1这样的字符串拆分为组成整数,您可以使用:

s = '0-1'
[int(x) for x in s.split('-')]

您想在变量名称和坐标之间创建双向映射,然后您可以按变量名称查找坐标,将函数应用于它,然后使用函数生成的新坐标集查找下一个变量。

可以应用函数的数字元组与可用作字典中的键的字符串之间的映射很容易。

相关内容

  • 没有找到相关文章

最新更新