首页 > 解决方案 > 围绕中心点旋转二维矩形只返回两个正确的点!为什么?

问题描述

我在 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。我无法理解其中的原因。我附上一张图像以使其更清晰,其中白色矩形是用初始值制作的,红色是用旋转坐标制作的,而绿色是预期的结果。

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

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

你能帮我理解为什么并提出解决方案或指出我的错误在哪里吗?

非常感谢

标签: pythonrotation2dpoint

解决方案


推荐阅读