用python计算笛卡尔坐标

用python计算笛卡尔坐标,python,math,cartesian,Python,Math,Cartesian,自从高中以来,我就没有使用过笛卡尔图,事实上,我已经发现需要与现实生活相关的笛卡尔图。这可能是一个奇怪的需求,但我必须将数据分配到笛卡尔图上的点,这些点可以通过调用笛卡尔坐标来访问。图上需要有无限多个点。例如 ^ [-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-

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

                       ^
 [-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
^
[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-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)

您可能还想看看哪个提供了更灵活的n-dim对象数组类型,允许您“切片”每个轴或获取子范围。如果您不熟悉这样的阵列,NumPy文档可能会有所帮助

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

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

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


在可以应用函数的数字元组和可用作dict键的字符串之间进行映射很容易。

您到底在做什么,为什么?考虑到所需的解释量,回答者可能会感到困惑。多亏了你们,我使用这个回答者的拆分函数成功地使其工作。谢谢!:)