Example #1
0
        private void AddRandomFigure(IGeometrySink sink, int segmentCount)
        {
            previousPoint = null;
            sink.BeginFigure(
                RandomNearPoint(),
                CoinFlip ? FigureBegin.Filled : FigureBegin.Hollow);
            FigureEnd end = CoinFlip ? FigureEnd.Closed : FigureEnd.Closed;

            if (end == FigureEnd.Closed)
            {
                segmentCount--;
            }
            if (CoinFlip)
            {
                for (int i = 0; i < segmentCount; i++)
                {
                    AddRandomSegment(sink);
                }
            }
            else
            {
                double which = Random.NextDouble();
                if (which < 0.33)
                {
                    sink.AddLines(RandomLines(segmentCount));
                }
                else if (which < 0.67)
                {
                    sink.AddQuadraticBeziers(RandomQuadraticBeziers(segmentCount));
                }
                else
                {
                    sink.AddBeziers(RandomBeziers(segmentCount));
                }
            }
            sink.EndFigure(end);
        }
Example #2
0
 private void AddRandomFigure(IGeometrySink sink, int segmentCount)
 {
     previousPoint = null;
     sink.BeginFigure(
         RandomNearPoint(),
         CoinFlip ? FigureBegin.Filled : FigureBegin.Hollow);
     FigureEnd end = CoinFlip ? FigureEnd.Closed : FigureEnd.Closed;
     if (end == FigureEnd.Closed)
         segmentCount--;
     if (CoinFlip)
         for (int i = 0; i < segmentCount; i++)
             AddRandomSegment(sink);
     else
     {
         double which = Random.NextDouble();
         if (which < 0.33)
             sink.AddLines(RandomLines(segmentCount));
         else if (which < 0.67)
             sink.AddQuadraticBeziers(RandomQuadraticBeziers(segmentCount));
         else
             sink.AddBeziers(RandomBeziers(segmentCount));
     }
     sink.EndFigure(end);
 }