예제 #1
0
        public static double ArcLength(double x1, double y1, double x2, double y2, double xc, double yc)
        {
            double a, b, c, angle;

            a = Mathematics.FindDist(x1, y1, x2, y2);
            b = Mathematics.FindDist(xc, yc, x1, y1);
            c = Mathematics.FindDist(xc, yc, x2, y2);

            angle = Math.Acos((b * b + c * c - a * a) / (2.0 * b * c));

            return(b * angle);
        }
예제 #2
0
        // метод для общих целей
        public static bool pointFitsArc(MyPoint point, MyArc arc, double precision)
        {
            double radius    = Mathematics.FindDist(arc.CenterPoint, arc.StartPoint);
            bool   pointFits = false;

            if (precision < 0)
            {
                double r = Mathematics.FindDist(arc.CenterPoint, arc.StartPoint);
                precision = r * 0.05;
            }
            pointFits = Math.Abs(Mathematics.FindDist(point, arc.CenterPoint) - radius) < precision;
            if (pointFits)
            {
                return(checkValidPointOnArc(point, arc));
            }
            else
            {
                return(false);
            }
        }