gpt4 book ai didi

algorithm - 从三个点/角度识别弧的起点和终点

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:05:37 25 4
gpt4 key购买 nike

我知道圆上有三个点,分别代表圆弧的起点、中间和终点(amb)。我也有这些点的角度,从正 X 轴逆时针方向,使用 atan2(y,x)从中心到点的三个各自的向量,所以我们有-pi < theta < pi .

我也知道哪个点是m , 而我想知道的是 a 中的哪一个和 b是圆弧的顺时针端。

我可以看到点的排列方式有8种:

"East"       "West"     "East"
0 -pi | pi 0
---------------+-------------
a m b |
a m | b
a | m b
| a m b


b m a |
b m | a
b | m a
| b m a

其中前四个有 a作为“结束”和b作为“开始”,后四个则相反。请记住,有关命令可以在 0 处环绕并出现在右侧或左侧,因此符号没有帮助。

有没有一种简洁的方法可以确定哪个是起点,哪个是终点?除了在一个大而密集的 if/else-if block 中费力地检查 8 个选项中每一个选项之间的相对值之外,就是这样。

实现语言是Python,但这不是语言特定的问题!

最佳答案

如果m在从ab的有向线段的左侧,则a是逆时针方向结束;否则为顺时针方向结束。

即取向量ab的左垂线,求其与am的点积。如果点积为正,则 a 为 CCW 端点。

顺便说一句,处理角度最简洁的方法是避免使用它们。一周中的任何一天,向量和线性代数都胜过角度和三角学。

关于algorithm - 从三个点/角度识别弧的起点和终点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24269089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com