python - 围绕中心点旋转二维矩形只返回两个正确的点!为什么?
问题描述
我在 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。我无法理解其中的原因。我附上一张图像以使其更清晰,其中白色矩形是用初始值制作的,红色是用旋转坐标制作的,而绿色是预期的结果。
结果打印输出=白色:初始;红色:用上面的代码旋转;绿色:预期
你能帮我理解为什么并提出解决方案或指出我的错误在哪里吗?
非常感谢
解决方案
推荐阅读
- python - CNN 模型只预测 1 类,并且给出 sigmoid 预测总是 0.99-1
- android - 如何修改应用程序图标和应用程序名称以进行 MDM 分发 - 原生应用程序的品牌重塑
- unit-testing - dotnet test Coverlet 错误覆盖
- java - 推荐,将文件存储在内存中并通过电子邮件发送
- powerbi - 防止测量受到视觉过滤器的影响
- python - Python:在 except 块中引发另一个异常以稍后捕获
- bluetooth - 如何选择蓝牙地址
- c# - 如何为底部的每个新条目更新 Listview?
- javascript - 从 Next.js 中的 API 获取数据的问题
- php - 如何在刀片上指定参数以访问表列之间的外键