algorithm - 判断线段的方向是顺时针还是逆时针

标签 algorithm matlab math geometry

我有一个二维点列表 (x1,y1),(x2,y2)......(Xn,Yn) 代表一个曲线段,是否有任何公式可以确定绘制该段的方向是顺时针还是逆时针?

感谢任何帮助

最佳答案

或者,您可以使用一些线性代数。如果按顺序有 a、b 和 c 三点,则执行以下操作:

 1)  create the vectors u = (b-a) = (b.x-a.x,b.y-a.y) and v = (c-b) ...
 2) calculate the cross product uxv = u.x*v.y-u.y*v.x
 3) if uxv is -ve then a-b-c is curving in clockwise direction (and vice-versa).

通过以相同方式沿着更长的曲线行驶,您甚至可以检测到“s”形曲线何时从顺时针方向变为​​逆时针方向(如果这有用的话)。

关于algorithm - 判断线段的方向是顺时针还是逆时针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25252664/

相关文章:

algorithm - 快速排序的最坏情况性能

algorithm - multi-paxos为什么叫multi-paxos?

Matlab-libsvm - 从原始权重向量、线性内核再现决策值

c++ - 为什么 MATLAB 在创建随机数方面比 C++ 快?

c++ - 多项式哈希码结果为负数?

python - 为什么 math.inf 是 float ,为什么我不能将它转换为整数?

algorithm - 如何从二进制堆中删除元素?

algorithm - 检测体素或体素组是否仍连接到对象的其余部分

image - 隐藏的Matlab TIFF 品牌?

shell - shell 中的 let vs expr vs 双括号算术