如何计算给定坐标的矩形相对于其中心的旋转角度?
计算矩形相对于中心的旋转角度

已知某矩形的坐标(按顺序给出,最后一个为闭合点):
- -95.3898486, 29.8421133
- -95.3908478, 29.8417155
- -95.3904025, 29.8409942
- -95.3894423, 29.8413990
- -95.3898486, 29.8421133
计算步骤
提取邻边向量
选任意一组相邻顶点,比如第一个点A(-95.3898486, 29.8421133)和第二个点B(-95.3908478, 29.8417155),计算向量AB = B - A:AB = (-95.3908478 + 95.3898486, 29.8417155 - 29.8421133) = (-0.0009992, -0.0003978)计算矩形中心坐标
取前4个不重复顶点的坐标平均值:x_center = (-95.3898486 -95.3908478 -95.3904025 -95.3894423)/4 ≈ -95.3901353 y_center = (29.8421133 +29.8417155 +29.8409942 +29.8413990)/4 ≈ 29.8415555计算旋转角度
矩形的旋转角度等于其边向量与x轴正方向的夹角(因矩形整体绕中心旋转,边的角度即整体旋转角度),用arctan2函数计算:θ(弧度)= arctan2(向量y分量, 向量x分量) = arctan2(-0.0003978, -0.0009992)转换为角度需乘以
180/π,计算结果约为201.8°(逆时针从x轴正方向到向量AB的角度),若取0-180°范围,可简化为21.8°(顺时针偏移角度)或158.2°(逆时针补角),具体根据需求选取。也可用点积公式验证:取x轴正方向向量(1,0),计算向量AB与它的点积:
|AB| = √((-0.0009992)² + (-0.0003978)²) ≈ 0.001076 cosθ = AB.x / |AB| ≈ -0.9286 θ ≈ arccos(-0.9286) ≈ 158.2°
补充说明
由于是小范围经纬度坐标,可近似当作平面直角坐标系处理;若需以其他方向为基准,在计算结果上做对应角度偏移即可。
内容的提问来源于stack exchange,提问作者Suhas Nayak
相关产品推荐
相关产品推荐

