我在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 ]
在这些中,sx
和sy
是单位切线矢量分量。
答案 0 :(得分:1)
从之前的评论中复制并扩展:
您还可以将自己的函数移动到单独的.py文件中,然后从那里导入它们。这样他们的内部隐藏在笔记本中。
如果将它们放在一个名为的文件/模块中,例如transformation.py
并将该文件放在笔记本文件旁边,然后您可以使用from transformation import *
正如现在删除的答案中所建议的那样,我建议使用矩阵进行任何转换,尤其是旋转。在我看来,这比元素修改要清晰得多。
编辑: Afaik在numpy中没有预定义的坐标转换函数。在同意中有something,但我不确定它有多么有用,它对于一个简单的转换来说有点多。 对于通过矩阵的转换谷歌找到了我module,这看起来非常全面。