Ejemplo n.º 1
0
 public Turtle(double x, double y, double theta, ITurtleDrawingContext ctx)
 {
     X     = x;
     Y     = y;
     Theta = theta;
     Ctx   = ctx;
 }
Ejemplo n.º 2
0
        void Window_Loaded(object sender, RoutedEventArgs e)
        {
            ITurtleDrawingContext drawCtx = Loss(5);

            var figures = new List <Point[]>();

            {
                var figure = new List <Point> {
                    drawCtx.StartPoint
                };

                foreach ((Point pos, bool stroke) in drawCtx.GetSteps())
                {
                    if (!stroke)
                    {
                        if (figure.Count > 1)
                        {
                            figures.Add(figure.ToArray());
                        }
                        figure.Clear();
                    }

                    figure.Add(pos);
                }

                if (figure.Count > 1)
                {
                    figures.Add(figure.ToArray());
                }
            }

            using (StreamGeometryContext ctx = TurtlePath.Open()) {
                foreach (Point[] figure in figures)
                {
                    ctx.BeginFigure(figure[0], false, false);
                    for (int i = 1; i < figure.Length; ++i)
                    {
                        ctx.LineTo(figure[i], true, true);
                    }
                }
            }
        }