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(); * */ }
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); }