/// <summary> /// 计算时钟方向 /// </summary> /// <param name="line"></param> /// <param name="paths"></param> /// <returns></returns> protected bool CaclCounterclockwiseDir(LineSegment2D line, List <Double2> paths) { if (paths == null || paths.Count == 0) { return(true); } Double2 f = Double2.zero; for (int i = 0; i < paths.Count; i++) { f += paths[i]; } f /= paths.Count; double sinAngle = Double2.SinAngle(line.normalizedDir, f - line.startPoint); if (sinAngle < 0) { return(false); } else { return(true); } }