示例#1
0
        public static void PlotInitialGeometry(IAssembly assembly)
        {
            GnuPlot.Set("terminal png size 1920, 1080");
            GnuPlot.Set("output 'gnuplot.png'");
            GnuPlot.HoldOn();
            GnuPlot.Set("size ratio -1");
            GnuPlot.Unset("key");
            double[]          X, Y;
            List <StoredPlot> storedPlots = new List <StoredPlot>();

            //List<double> X = new List<double>();
            //List<double> Y = new List<double>();
            foreach (var element in assembly.ElementsAssembly)
            {
                int numberOfNodes = element.Value.Nodes.Count;
                for (int i = 1; i <= numberOfNodes; i++)
                {
                    if (i != numberOfNodes)
                    {
                        //X.Add(element.Value.Nodes[i].XCoordinate);
                        //X.Add(element.Value.Nodes[i+1].XCoordinate);
                        //Y.Add(element.Value.Nodes[i].YCoordinate);
                        //Y.Add(element.Value.Nodes[i + 1].YCoordinate);
                        X = new double[] { element.Value.Nodes[i].XCoordinate, element.Value.Nodes[i + 1].XCoordinate };
                        Y = new double[] { element.Value.Nodes[i].YCoordinate, element.Value.Nodes[i + 1].YCoordinate };
                    }
                    else
                    {
                        //X.Add(element.Value.Nodes[i].XCoordinate);
                        //X.Add(element.Value.Nodes[ 1].XCoordinate);
                        //Y.Add(element.Value.Nodes[i].YCoordinate);
                        //Y.Add(element.Value.Nodes[ 1].YCoordinate);
                        X = new double[] { element.Value.Nodes[i].XCoordinate, element.Value.Nodes[1].XCoordinate };
                        Y = new double[] { element.Value.Nodes[i].YCoordinate, element.Value.Nodes[1].YCoordinate };
                    }

                    if (element.Value is ContactNtN2D)
                    {
                        storedPlots.Add(new StoredPlot(X, Y, "with linespoints pt " + (int)PointStyles.SolidCircle + " lt rgb \"red\""));
                        //GnuPlot.Plot(X, Y, "with linespoints pt " + (int)PointStyles.SolidCircle + " lt rgb \"blue\"");
                    }
                    else if (element.Value is ContactNtS2D)
                    {
                        storedPlots.Add(new StoredPlot(X, Y, "with linespoints pt " + (int)PointStyles.SolidCircle + " lt rgb \"red\""));
                    }
                    else
                    {
                        storedPlots.Add(new StoredPlot(X, Y, "with linespoints pt " + (int)PointStyles.SolidCircle + " lt rgb \"blue\""));
                        //GnuPlot.Plot(X, Y, "with linespoints pt " + (int)PointStyles.SolidCircle + " lt rgb \"blue\"");
                    }
                }
            }
            GnuPlot.Plot(storedPlots);
            GnuPlot.HoldOff();
            //GnuPlot.Close();
            //GnuPlot.KillProcess();
        }
示例#2
0
 public static void PlotHeatMap(List <HeatMapData> plots)
 {
     GnuPlot.HoldOn();
     GnuPlot.Set("cbrange[0:7.0]");
     GnuPlot.Set("palette defined(0 \"blue\", 0.33\"green\", 0.67\"yellow\", 1 \"red\")");
     GnuPlot.Set("pm3d");
     GnuPlot.Set("dgrid3d");
     GnuPlot.Set("view map");
     foreach (var plot in plots)
     {
         GnuPlot.SPlot(plot.Xcoordinates, plot.Ycoordinates, plot.Temperatures);
     }
 }