围绕中心点旋转2d矩形仅返回两个正确的点!为什么?

问题描述

我在wgs84中有4个坐标:

north=39.92911484169648
south=39.88787873513176
east=16.60177886077772
west=16.57366683077252

通过组合它们,我可以获得矩形(NW,NE,SW,SE)的形状和上述矩形的中心

39.90849678841412 16.587723359360467

我在stackoverflow上遵循了几个答案,将矩形转换为零,围绕中心逆时针旋转点70度,然后转换回原始坐标(全部在python中)。

def rotate(origin,point,angle):
    """
    Rotate a point counterclockwise by a given angle around a given origin.

    The angle should be given in radians.
    """
    ox,oy = origin
    px,py = point

    qx = ox + cos(angle) * (px - ox) - sin(angle) * (py - oy)
    qy = oy + sin(angle) * (px - ox) + cos(angle) * (py - oy)

    return qx,qy

当我打印回旋转的点时,由于某种原因,我只能正确地获得NE和SW。我不明白原因。我附加了一个图像以使其更清晰,其中白色矩形是由初始值构成的,红色是由旋转坐标构成的,而绿色是预期的结果。

结果打印输出=白色:初始;红色:旋转以上代码;绿色:预期

Printout of results=white: initial; red: rotated with above code; green: expected

您能帮助我理解原因并提出解决方案或指出我的错误所在吗?

非常感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)