Esempio n. 1
0
        //------------------------------------------------------------------------------

        private static TPolygon BuildArc(TDoublePoint pt, double a1, double a2, double r)
        {
            int      steps  = (int)Math.Max(6, Math.Sqrt(Math.Abs(r)) * Math.Abs(a2 - a1));
            TPolygon result = new TPolygon();

            result.Capacity = steps;
            int    n  = steps - 1;
            double da = (a2 - a1) / n;
            double a  = a1;

            for (int i = 0; i <= n; ++i)
            {
                double dy = Math.Sin(a) * r;
                double dx = Math.Cos(a) * r;
                result.Add(new TDoublePoint(pt.X + dx, pt.Y + dy));
                a = a + da;
            }
            return(result);
        }
Esempio n. 2
0
 //------------------------------------------------------------------------------
 private static TPolygon BuildArc(TDoublePoint pt, double a1, double a2, double r)
 {
     int steps = (int)Math.Max(6, Math.Sqrt(Math.Abs(r)) * Math.Abs(a2 - a1));
     TPolygon result = new TPolygon();
     result.Capacity = steps;
     int n = steps - 1;
     double da = (a2 - a1) / n;
     double a = a1;
     for (int i = 0; i <= n; ++i)
     {
         double dy = Math.Sin(a) * r;
         double dx = Math.Cos(a) * r;
         result.Add(new TDoublePoint(pt.X + dx, pt.Y + dy));
         a = a + da;
     }
     return result;
 }