Exemplo n.º 1
0
        /// <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);
            }
        }