【发布时间】:2010-11-29 02:18:57
【问题描述】:
我在 3D 建模软件中有一堆垂直于窗口表面的向量。投影到 XY 平面,我想知道他们面对的方向,转换为 8 罗盘坐标(North,North-East em>, East, South-East, South, South-West, West 和西北)。
向量的工作方式如下:
- X 轴代表东西(东为正)
- y 轴代表南北(北为正)
- 因此
- (0, 1) == 北
- (1, 0) == 东
- (0,-1) == 南
- (-1,0) == 西
给定一个向量 (x, y),我正在寻找 8 个罗盘坐标中最接近的一个。关于如何优雅地做到这一点的任何想法?
【问题讨论】:
-
关于如何正确标记的任何想法?随意...
-
不,在我的回答中 (1, 0) 是东边,它是逆时针方向的,因为我在这里做数学运算。这与导航中角度的标准使用不一致(0 = 北,顺时针)。您可以通过在 +8 上添加适当的偏移量并在 atan2 前面使用 - 来调整它。
-
感谢您指出starblue,我在这里的草图让自己感到困惑-您的答案是正确的!
标签: algorithm math trigonometry vector