예제 #1
0
 public void DrawDefault()
 {
     using (var outp = File.CreateText("puzzle.svg"))
     {
         var dia = new PuzzleDiagram();
         dia.Draw(outp, Puzzle.Builder.DefaultTestPuzzle(), new Vector2(50));
     }
 }
예제 #2
0
        public IActionResult Svg(string id, float w = 16, float h = 16)
        {
            var ident = PuzzleIdent.Parse(id);
            var p     = compLib.GetPuzzleWithCaching(ident);
            var sols  = repSol.GetPuzzleSolutions(ident);

            var sb = new StringBuilder();

            using (var tw = new StringWriter(sb))
            {
                var dia = new PuzzleDiagram()
                {
                    GetResource = x => "/img/" + x
                };
                dia.Draw(tw, p.Puzzle, new Vector2(w, h));
            }

            return(Content(sb.ToString(), "image/svg+xml"));
        }
예제 #3
0
        public PuzzleOverLay(Puzzle puzzle, IBitmap overlay)
        {
            Puzzle  = puzzle;
            Overlay = overlay;

            Diagram = new PuzzleDiagram()
            {
                GetResource = x => "/img/" + x,
            };
            Diagram.GetOverlay = (t, r) =>
            {
                string s = "";
                if (Overlay[t.Position])
                {
                    s += new RectTag(r).Style(OverlayStyle);
                }
                return(s);
            };
            OverlayStyle = new StyleTag().Fill(0, 180, 0).Opacity(0.4f);
        }