是否有一个numpy函数来执行坐标转换?

时间:2015-03-28 16:45:07

标签: python numpy

我在ipython笔记本中开发了一些关于数值方法的讲义,我需要包含一些坐标转换函数。我已经对这些功能进行了编码(下图),但细节并不是该主题的基本内容,如果我可以调用预先编写的功能,它将简化讲座。

我看到scipy图像旋转功能,但我只需要坐标平移和旋转。即

# transform from global to panel coordinates
def transformXY( self, x, y ):
    xp = x-self.xc
    yp = y-self.yc
    xpp = xp*self.sx+yp*self.sy
    ypp = yp*self.sx-xp*self.sy
    return [ xpp, ypp ]

# rotate velocity back to global coordinates
def rotateUV( self, u, v):
    up = u*self.sx-v*self.sy
    vp = v*self.sx+u*self.sy
    return [ up, vp ]  

在这些中,sxsy是单位切线矢量分量。

1 个答案:

答案 0 :(得分:1)

从之前的评论中复制并扩展:

您还可以将自己的函数移动到单独的.py文件中,然后从那里导入它们。这样他们的内部隐藏在笔记本中。 如果将它们放在一个名为的文件/模块中,例如transformation.py并将该文件放在笔记本文件旁边,然后您可以使用from transformation import *

导入您的函数

正如现在删除的答案中所建议的那样,我建议使用矩阵进行任何转换,尤其是旋转。在我看来,这比元素修改要清晰得多。

编辑: Afaik在numpy中没有预定义的坐标转换函数。在同意中有something,但我不确定它有多么有用,它对于一个简单的转换来说有点多。 对于通过矩阵的转换谷歌找到了我module,这看起来非常全面。