Пример #1
0
        private void DrawSVG(TextWriter tw, Puzzle puzzle, Vector2 size)
        {
            WriteHeader(tw);

            foreach (var tile in puzzle.ForEachTile())
            {
                var r = PlotTransform.Translate(tile);

                // if (tile.Cell == puzzle.Definition.Void)
                // {
                //     tw.WriteLine(new RectTag( r).Style(new StyleTag().Fill("black")));
                // }
                if (tile.Cell == puzzle.Definition.Wall)
                {
                    tw.WriteLine(new ImageTag(r, GetResource("wall.svg")));
                }
                if (tile.Cell.IsFloor)
                {
                    tw.WriteLine(new ImageTag(r, GetResource("floor.svg")));
                }
                if (tile.Cell.IsGoal)
                {
                    tw.WriteLine(new ImageTag(r, GetResource("goal.svg")));
                }
                if (tile.Cell.IsCrate && CrateSvg != null)
                {
                    tw.WriteLine(new ImageTag(r, GetResource(CrateSvg)));
                }
                if (tile.Cell.IsPlayer && PlayerSvg != null)
                {
                    tw.WriteLine(new ImageTag(r, GetResource(PlayerSvg)));
                }

                if (GetOverlay != null)
                {
                    var s = GetOverlay(tile, r);
                    if (s != null)
                    {
                        tw.WriteLine(s);
                    }
                }
            }

            WriteFooter(tw);
        }
Пример #2
0
 /// <summary>
 /// Draw cross on plot.
 /// </summary>
 /// <param name="graphics">
 /// Plot drawing surface.
 /// </param>
 /// <param name="data">
 /// Data point to transform and draw.
 /// </param>
 /// <param name="plotTransform">
 /// Transformation between data coordinates and image coordinates on plot.
 /// </param>
 public void DrawPoint(Graphics graphics, Vector2D data, PlotTransform plotTransform)
 {
     Point center = plotTransform(data);
     graphics.DrawLine(_pen, center.X - _size, center.Y, center.X + _size, center.Y);
     graphics.DrawLine(_pen, center.X, center.Y - _size, center.X, center.Y + _size);
 }