public Turtle(double x, double y, double theta, ITurtleDrawingContext ctx) { X = x; Y = y; Theta = theta; Ctx = ctx; }
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); } } } }