微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决围绕中心点旋转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 举报,一经查实,本站将立刻删除。