日积一步4(如何判断曲线是逆时针还是顺时针)

方法:对于平面曲线可以直接采用格林公式进行判别,而对于空间曲线,虽然可以考虑使用斯托克斯公式,但是从工程应用的角度来讲,不如将曲线投影到某一平面上,而且投影后的曲线方向不变。再使用格林公式求解。

此处我们需要用到的格林公式为\oint {-ydx},当曲线为逆时针方向时,从几何上可以理解为封闭曲线上半部分与X轴围城的面积,减去下半部分与X轴围成的面积。因此,若计算结果大于0,则为逆时针,反之为顺时针。

                                            日积一步4(如何判断曲线是逆时针还是顺时针)_第1张图片

bool Algori::AntiClockWise(const std::vector &pts)
{
	double d = 0.0;
	
	for (int i = 0; i < pts.size()-1; ++i)
	{
		d += -0.5*(pts[i + 1]->y + pts[i]->y)*(pts[i + 1]->x - pts[i]->x);
	}
	if (d > 0)
		return true;
	else
		return false;
}

 

你可能感兴趣的:(算法)