Beispiel #1
0
        public static void Main(string[] args)
        {
            var p = new Planet(5);

            p.Simulate(5000);

            var projector = new EquirectangularProjector();
            var renderer  = new MantleHeatRenderer();
            var options   = new CellRenderOptions
            {
                ShowCellOutline         = false,
                ShowConvectionDirection = true
            };

            var projection = projector.ProjectCells(renderer.RenderCells(p.Cells, options));

            Console.WriteLine("{0} out of {1} displayed", projection.Cells.Count, p.Cells.Count);
            var s = SVGGenerator.GetSVG(projection);

            File.WriteAllText("testdatafromequirect.svg", s);
        }
Beispiel #2
0
    private void WriteSVG(Stream stream)
    {
        string intro = "<?xml version=\u00221.0\u0022 standalone=\u0022no\u0022?>\n<!DOCTYPE svg PUBLIC \u0022-//W3C//DTD SVG 1.1//EN\u0022"
                       + "\n   \u0022http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" + "\u0022>\n<svg xmlns=\u0022http://www.w3.org/2000/svg" + "\u0022 version=\u00221.1\u0022>";

        using (StreamWriter writer = new StreamWriter(stream))
        {
            writer.WriteLine(intro);
            SVGGenerator svgGenerator = new SVGGenerator();
            foreach (Shape shape in shapes)
            {
                shape.SetBridge(svgGenerator);
                shape.Create();
            }
            foreach (string output in svgGenerator.svgOutput)
            {
                writer.WriteLine(output);
            }
            writer.WriteLine("</svg>");
        }
    }
Beispiel #3
0
        private void WriteComplicatedWiresManual(string path, ManualFileName file, ref List <ReplaceText> replacements, bool outputFile = true)
        {
            var lineTypes = new List <string>
            {
                "15,40,4,10",
                string.Empty,
                "3",
                "8"
            };
            var labels = new List <string>
            {
                "Wire has red\ncoloring",
                "Wire has blue\ncoloring",
                "Has ★ symbol",
                "LED is on"
            };

            var ruleset            = _ruleManager.VennWireRuleSet;
            var cutInstructionList = new List <CutInstruction>
            {
                ruleset.RuleDict[new VennWireState(true, false, false, false)],
                ruleset.RuleDict[new VennWireState(false, true, false, false)],
                ruleset.RuleDict[new VennWireState(false, false, true, false)],
                ruleset.RuleDict[new VennWireState(false, false, false, true)],
                ruleset.RuleDict[new VennWireState(true, false, true, false)],
                ruleset.RuleDict[new VennWireState(true, true, false, false)],
                ruleset.RuleDict[new VennWireState(false, true, false, true)],
                ruleset.RuleDict[new VennWireState(false, false, true, true)],
                ruleset.RuleDict[new VennWireState(false, true, true, false)],
                ruleset.RuleDict[new VennWireState(true, false, false, true)],
                ruleset.RuleDict[new VennWireState(true, true, true, false)],
                ruleset.RuleDict[new VennWireState(true, true, false, true)],
                ruleset.RuleDict[new VennWireState(false, true, true, true)],
                ruleset.RuleDict[new VennWireState(true, false, true, true)],
                ruleset.RuleDict[new VennWireState(true, true, true, true)],
                ruleset.RuleDict[new VennWireState(false, false, false, false)]
            };

            var vennList = new List <string>();

            using (var enumerator = cutInstructionList.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    // ReSharper disable once SwitchStatementMissingSomeCases
                    switch (enumerator.Current)
                    {
                    case CutInstruction.Cut:
                        vennList.Add("C");
                        break;

                    case CutInstruction.DoNotCut:
                        vennList.Add("D");
                        break;

                    case CutInstruction.CutIfSerialEven:
                        vennList.Add("S");
                        break;

                    case CutInstruction.CutIfParallelPortPresent:
                        vennList.Add("P");
                        break;

                    case CutInstruction.CutIfTwoOrMoreBatteriesPresent:
                        vennList.Add("B");
                        break;
                    }
                }
            }

            var vennSVG   = new SVGGenerator(800, 650);
            var legendSVG = new SVGGenerator(275, 200);

            vennSVG.Draw4SetVennDiagram(vennList, lineTypes);
            legendSVG.DrawVennDiagramLegend(labels, lineTypes);
            replacements.Add(new ReplaceText {
                Original = "VENNDIAGRAMSVGDATA", Replacement = vennSVG.ToString()
            });
            replacements.Add(new ReplaceText {
                Original = "VENNLEGENDSVGDATA", Replacement = legendSVG.ToString()
            });
            file.WriteFile(path, replacements, outputFile);
        }