Esempio n. 1
0
        private void StartingRoutine(object sender, EventArgs e)
        {
            ToolTip toolTip1 = new ToolTip();

            btnRadLast = radKeine;
            // Set up the delays for the ToolTip.
            toolTip1.AutoPopDelay = 5000;
            toolTip1.InitialDelay = 1000;
            toolTip1.ReshowDelay  = 500;
            // Force the ToolTip text to be displayed whether or not the form is active.
            toolTip1.ShowAlways = true;

            // Set up the ToolTip text for the Button and Checkbox.
            //toolTip1.SetToolTip(this.button1, "My button1");
            toolTip1.SetToolTip(this.chkParameter,
                                "Funktion 1 und Funktion 2 werden als" +
                                "\nParameterkurve aufgefasst (x(t), y(t))" +
                                "\nFunktion 3 ist inaktiv ");



            curves = new List <Kurve>();

            curve1 = new Kurve();
            curve1.setKurvenart(Punktform.DICKER_PUNKT);
            curve1.setKurvenfarbe(Color.Cyan);
            curve1.setSteps(100);
            curve1.setXEinheit("mm");
            curve1.setYEinheit("cm^2");
            mp = new DiagParam("", "");
            curve1.setFktText("e(x/2)/(x**4+0.2)");


            curve2 = new Kurve();
            curve2.setKurvenart(Punktform.KREUZ);
            curve2.setKurvenfarbe(Color.Gray);
            curve2.setSteps(100);
            curve2.setXEinheit("");
            curve2.setYEinheit("");
            curve2.setFktText("((4.0)/(((x-1)**4)+1))");

            curve3 = new Kurve();
            curve3.setKurvenart(Punktform.RECHTECK_HOHL);
            curve3.setKurvenfarbe(Color.Red);
            curve3.setSteps(100);
            curve3.setXEinheit("");
            curve3.setYEinheit("");
            curve3.setFktText("(0.5*x)**(3)");

            tbCurve1.Text = "e(x/2)/(x**4+0.2)";
            tbCurve2.Text = "((4.0)/(((x - 1)**4) + 1))";
            tbCurve3.Text = "(0.5*x)**(3)";

            diag = new Diagramm(-8, 8, -10, 10, curves, mp);
            diag.WithShowString      = true;
            btnRahmenfarbe.BackColor = Color.Green;
            mp.setcRahmenfarbe(Color.Green);

            Color col = Color.Blue;

            btnHintergrundfarbe.BackColor = col;
            btnHintergrundfarbe.ForeColor = Color.Yellow;
            diag.BackColor    = col;
            chkAktiv1.Checked = true;
            chkAktiv2.Checked = true;
            chkAktiv3.Checked = true;

            panDiag.Controls.Add(diag);
            //pan.Refresh();
            diag.Refresh();



            /*
             *
             * Color col = Color.BLUE;
             * btnHintergrund.setBackground(col);
             * btnHintergrund.setForeground(Color.YELLOW);
             *
             * String err = "";
             *
             * //fkt = "3.0*(x*x)";
             * fkt = "e(x/2)/(x**4+0.2)";
             * err = addFunktionToCurves(fkt, Punktform.DICKER_PUNKT,
             *  Color.CYAN, "mm", "cm^2", curve1);
             * if (DEBUG)
             *  System.out.println("1.te Funktion: " + (err.isEmpty() ? "Kein Fehler" : err));
             *
             * fkt = "(x)**(0.5)";
             * err = addFunktionToCurves(fkt, Punktform.KREUZ,
             *  Color.GRAY, "", "", curve2);
             * if (DEBUG)
             *  System.out.println("2.te Funktion: " + (err.isEmpty() ? "Kein Fehler" : err));
             *
             * fkt = "(0.5*x)**(3)";
             * err = addFunktionToCurves(fkt, Punktform.RECHTECK_HOHL,
             *  Color.RED, "", "", curve3);
             * if (DEBUG)
             *  System.out.println("3.te Funktion: " + (err.isEmpty() ? "Kein Fehler" : err));
             *
             * if (curves.size() == 0)
             * {
             *  if (DEBUG)
             *      System.out.println("Keine Funktion (nur Fehler?)");
             *  return;
             * }
             * curve1.setSteps(100);
             * curve2.setSteps(100);
             * curve3.setSteps(100);
             *
             * mm = new Diagramm(-8, 8, -10, 10, curves, mp);
             * this.add(mm, BorderLayout.CENTER);
             * mm.setOpaque(true);
             * mm.setBackground(col);
             *
             *
             */

            //curve1.setFktText("e(x/2)/(tan(x)+0.2)");
            //curve1.setFktText("(x)**(0.5)");
            //            curve1.setFktText("(0.5 * x) * *(3)");

            /*
             * Parser ps = new Parser();
             * string err = ps.parsen(curve1.getFktText());
             * curve1.setParser(ps);
             * Parser ps0 = curve1.getParser();
             * Kurve cur = ps0.bestimmeKurve(
             *  -8.0,8.0,
             *  curve1.getSteps());
             * /* Werte der alten Kurve curve1 zuweisen*/
            /*
             * curve1.setWerte(cur.getWerte());
             * // Minimum und Maximumwerte bestimmen
             * curve1.bestimmeMinMaxWerte();
             * curves.Add(curve1);
             * diag = new Diagramm(-2, 2, -10, 10, curves, mp);
             *
             * panDiag.Controls.Add(diag);
             * //pan.Refresh();
             * diag.Refresh();
             *
             */
        }
Esempio n. 2
0
        private void drowResultDiagramm(int curTact)
        {
            int k    = 20;
            int xmax = curTact + 1;
            int ymax = stack.Count + 2;

            //Diagramm.
            Diagramm.Width  = xmax * k;
            Diagramm.Height = ymax * k;
            Diagramm.Refresh();
            debug.Text = "";

            Graphics diagramma = Diagramm.CreateGraphics();

            Pen gridPen = new Pen(Color.Black, 1);

            gridPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
            for (int i = 0; i <= ymax; i++)
            {
                diagramma.DrawLine(gridPen, 0, k * i, k * xmax, k * i);
            }
            for (int i = 0; i <= xmax; i++)
            {
                diagramma.DrawLine(gridPen, k * i, 0, k * i, k * ymax);
            }

            Pen borderPen = new Pen(Color.Black, 3);

            diagramma.DrawLine(borderPen, 0, k * ymax, k * xmax, k * ymax);
            diagramma.DrawLine(borderPen, 0, 0, 0, k * ymax);

            Pen readyPen = new Pen(Color.Red, 2);

            foreach (Proccess P in stack)
            {
                diagramma.DrawLine(readyPen, k * P.start_ready_tact, k * (ymax - 1), k * P.start_ready_tact, k * (ymax - P.number - 1));
                diagramma.DrawLine(readyPen, k * P.start_work_tact, k * (ymax - 1), k * P.start_work_tact, k * (ymax - P.number - 1));
                diagramma.DrawLine(readyPen, k * P.start_ready_tact, k * (ymax - P.number - 1), k * P.start_work_tact, k * (ymax - P.number - 1));
            }

            Pen workPen = new Pen(Color.Blue, 5);

            foreach (Proccess P in stack)
            {
                diagramma.DrawLine(workPen, k * P.start_work_tact, k * (ymax - 1), k * P.start_work_tact, k * (ymax - P.number - 1));
                diagramma.DrawLine(workPen, k * P.end_work_tact, k * (ymax - 1), k * P.end_work_tact, k * (ymax - P.number - 1));
                diagramma.DrawLine(workPen, k * P.start_work_tact, k * (ymax - P.number - 1), k * P.end_work_tact, k * (ymax - P.number - 1));
            }


            float  sum_time_work = 0;
            float  sum_time_wait = 0;
            string hr            = "+------+-------+-------+------+-----+\n";

            debug.Text += hr;
            debug.Text += "| Proc | Ready | Start | Work | End |\n";
            debug.Text += hr;
            foreach (Proccess P in stack)
            {
                debug.Text +=
                    String.Format("| \"{0,1}\"  |  {1,2}   |  {2,2}   |  {3,2}  | {4,2}  |\n",
                                  P.name, P.start_ready_tact, P.start_work_tact, (P.end_work_tact - P.start_work_tact), P.end_work_tact);
                sum_time_work += P.end_work_tact - P.start_work_tact;
                sum_time_wait += P.tacts_of_wait;
            }
            debug.Text += hr;
            debug.Text += "\n среднее время выполнения = " + (sum_time_work / stack.Count) +
                          "\n среднее время   ожидания = " + (sum_time_wait / stack.Count);
        }