赞
踩
有两种方法:
方法1:找到一个曲线的凸点,求该凸点到左右两点线段的叉乘,如图所示,我们定义点1为凸点,点2为凹点,如何点1左边向量叉乘右边向量,方向里,为逆时针。
方法2:利用格林公式。求出每个向量的曲线积分,计算出代数和,如果为正值,即为逆时针。代码如下:
- /**
- *
- * @param points
- * @return
- */
- public boolean AntiClockWise(List<Point> points) {
- double sum = 0;
- for (int i = 0; i < points.size() - 1; i++) {
- Point p1 = points.get(i);
- Point p2 = points.get(i + 1);
- sum += -0.5 * (p2.y + p1.y) * (p2.x - p1.x);
- }
- if (sum > 0) return true;
- return false;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。