Matlab 闭环矢量环方向
我有一个不相交的闭合向量环,我想确定它是逆时针方向还是顺时针方向 这里有一个简单的例子Matlab 闭环矢量环方向,matlab,vector,direction,Matlab,Vector,Direction,我有一个不相交的闭合向量环,我想确定它是逆时针方向还是顺时针方向 这里有一个简单的例子 [x y] = [0 0; 1 0; 1 1; 0 1; 0 0] 是逆时针和 [x y] = [0 0; 0 1; 1 1; 1 0; 0 0] 是顺时针的 有没有一个好方法来确定它是顺时针还是逆时针 编辑:更多示例 [x, y] OR [x, y] 0 ,0 0, 0 1 ,0.5 0, 2
[x y] = [0 0; 1 0; 1 1; 0 1; 0 0]
是逆时针和
[x y] = [0 0; 0 1; 1 1; 1 0; 0 0]
是顺时针的
有没有一个好方法来确定它是顺时针还是逆时针
编辑:更多示例
[x, y] OR [x, y]
0 ,0 0, 0
1 ,0.5 0, 2
2 ,0 2, 2
2 ,2 2, 0
0 ,2 1, 0.5
0 ,0 0, 0
现在,以上各点仅按给定顺序连接。我需要将左侧的情况检测为逆时针方向,将右侧的情况检测为顺时针方向。对于不相交的凸多边形和凹多边形,最可靠的方法是计算。如果符号区域为正,则为逆时针方向,否则为顺时针方向
signedArea = 0.5 * sum(x.*y([2:end 1]) - y.*x([2:end 1]));
isClockwise = signedArea < 0;
signedrea=0.5*sum(x*y([2:end 1])-y*x([2:end 1]);
IsClock=signedArea<0;
您能再举一些数据示例吗。您的循环是否始终“居中”于[0,0]
?移动是否总是离散整数等?除了0
和1
之外,是否允许使用数字?不允许。循环从任何地方开始,可以从任何地方开始。它只有两个限制,即,它应该是封闭的和不相交的。请使用更多示例编辑您的问题设置与连续点之间的位移相对应的向量。然后得到这些向量的参数。对于顺时针循环,这些参数的总和为-pi
。对于逆时针方向,它们的总和将是+pi
更好地使用[theta,~]=cart2pol(diff(x),diff(y))
,然后是总和(theta)