private static List <Unit> stepOvule(Diagramm dgrm, Dictionary <Gap, double> mass, Unit start, Unit end) { var clear = dgrm.Units.ToList(); var way = new Dictionary <Unit, StepCounter>(); way[start] = new StepCounter { Price = 0, Previous = null }; while (true) { Unit discover = null; var betterOffer = double.PositiveInfinity; foreach (var v in clear) { if (way.ContainsKey(v) && way[v].Price < betterOffer) { betterOffer = way[v].Price; discover = v; } } if (discover == null) { return(null); } if (discover == end) { break; } foreach (var e in discover.IncidentEdges.Where(z => z.From == discover)) { var currentPrice = way[discover].Price + mass[e]; var nextNode = e.GetUnit(discover); if (!way.ContainsKey(nextNode) || way[nextNode].Price > currentPrice) { way[nextNode] = new StepCounter { Previous = discover, Price = currentPrice } } ; } clear.Remove(discover); } var total = new List <Unit>(); while (end != null) { total.Add(end); end = way[end].Previous; } total.Reverse(); return(total); }
public static Diagramm MakeGraph(params int[] units) { var dgrm = new Diagramm(units.Max() + 1); for (var a = 0; a < units.Length - 1; a += 2) { dgrm.Connect(units[a], units[a + 1]); } return(dgrm); }
private static List <Point> BoxWay(Diagramm dgrm, Dictionary <Gap, double> mass, State state, Point start, Point box) { var stance = StepCheck(start, state.MapWidth); var checker = StepCheck(box, state.MapWidth); var way = stepOvule(dgrm, mass, dgrm[stance], dgrm[checker]); return(way?.Select(z => StepMaker(z.UnitNumber, state.MapWidth)).Skip(1).ToList() ?? new List <Point>()); }
public static Gap Connect(Unit first, Unit second, Diagramm dgrm) { if (!dgrm.Units.Contains(first) || !dgrm.Units.Contains(second)) { throw new ArgumentException(); } var edge = new Gap(first, second); first.edges.Add(edge); return(edge); }
private static Dictionary <Point, List <Point> > GetPathToAllChests(Diagramm dgrm, Dictionary <Gap, double> mass, Point start, State state) { var total = new Dictionary <Point, List <Point> >(); var boxes = state.Chests.Where(box => box != start); foreach (var box in boxes) { total[box] = BoxWay(dgrm, mass, state, start, box); } return(total); }
private void SaveToolStripMenuItem_Click(object sender, EventArgs e) { string fileName = fileOpen(); if (fileName != String.Empty) { try { Diagramm.SaveImage(fileName, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Png); MessageBox.Show("Сохранение прошло успешно", "Science Direct Systematizer"); } catch (Exception ex) { MessageBox.Show("Ошибка при сохранении.\nФайл не сохранен.\n" + ex.Message.ToString(), "Science Direct Systematizer"); } } else { return; } }
public List <Point> FindPathToCompleteGoal(State state) { var dgrm = new Diagramm(state.MapHeight * state.MapWidth); var mass = new Dictionary <Gap, double>(); var boxes = state.Chests.Take(Protector); var amongBoxes = new Dictionary <Point, Dictionary <Point, List <Point> > >(); InitializeGraphOnCells(state, mass, dgrm); amongBoxes[state.Position] = GetPathToAllChests(dgrm, mass, state.Position, state); foreach (var box in boxes) { amongBoxes[box] = GetPathToAllChests(dgrm, mass, box, state); } var shortcut = new List <Point>(); for (var a = 1; a <= Protector; a++) { var optionsBox = GetBust(boxes, a) .Where(perm => HowFarBoxWay(state, perm, amongBoxes) <= state.Energy); if (!optionsBox.Any()) { break; } shortcut = optionsBox .First() .ToList(); } return(AmountHowFar(state, shortcut, amongBoxes)); }
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 ReportAsync() { CloseReport(); Document doc = new Document(iTextSharp.text.PageSize.A4, 25, 25, 25, 25); using (var writer = PdfWriter.GetInstance(doc, new FileStream(path + DpfName, FileMode.Create, FileAccess.ReadWrite))) { int page = 1; BaseFont baseFont = BaseFont.CreateFont(ttf, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL); iTextSharp.text.Font fontbold = new iTextSharp.text.Font(baseFont, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.BOLD); doc.Open(); PdfContentByte cb = writer.DirectContent; #region 1 page doc.NewPage(); doc.Add(new Paragraph("", font)); HatsPrint(doc, cb, baseFont, ttf); cb.BeginText(); cb.ShowTextAligned(0, "Chart", 300, 680, 0); cb.EndText(); iTextSharp.text.Image HistoryChartIMG = Pcp.ImgScreenSchots(Dynamic, 0, 0); HistoryChartIMG.SetAbsolutePosition(25, 560); HistoryChartIMG.ScaleAbsolute(560, 95); cb.AddImage(HistoryChartIMG); Hat.DetailsPrint(cb, baseFont, "Return", 25, 545, 10); PDFTablesCreate tablecreator = new PDFTablesCreate(ActivesClasses, Convert.ToDecimal(Totalport)); PdfPTable table = new PdfPTable(3); table = Pcp.TablePrint(null, font, tablecreator.ReturnT, 90, 45, 95); table.WriteSelectedRows(0, -1, 25, 530, cb); Hat.DetailsPrint(cb, baseFont, "Allocation", 325, 545, 10); table = new PdfPTable(3); table = Pcp.TablePrint(null, font, tablecreator.AllocationT, 90, 50, 100); table.WriteSelectedRows(0, -1, 325, 530, cb); LowHatPrint(cb, baseFont, page); page++; #endregion #region 2 page - 3diagramm doc.NewPage(); HatsPrint(doc, cb, baseFont, ttf); Hat.DetailsPrint(cb, baseFont, "Current Portfel Chart", Convert.ToInt32(doc.PageSize.Width / 2 - 60), 680, 10); iTextSharp.text.Image CurrentPotrIMG = Pcp.ImgScreenSchots(CurrentP, 21, 21); CurrentPotrIMG.SetAbsolutePosition(0, 300); //1 картинка //CurrentPotrIMG.ScaleAbsolute(440, 190); //CurrentPotrIMG.ScaleAbsolute(200,200); cb.AddImage(CurrentPotrIMG); Hat.LinePrint(cb, 20, 523, 550, 523, 255, 255, 255, 26); // закрасить сверху Hat.LinePrint(cb, 20, 555, -120, 255, 255, 255, 255, 219); //закрасить слева //Легенда var colorsPortfels = Ext.CurPortBrush; int X = 465; int Y = 670; object KeyDiagramm = null; Diagramm dd = null; string isin = null; for (int i = 0; i < colorsPortfels.Count; i++) { System.Windows.Media.Brush diagrammitem = colorsPortfels.Values.ElementAt(i); KeyDiagramm = colorsPortfels.Keys.ElementAt(i); dd = (Diagramm)KeyDiagramm; isin = dd.Name; Pcp.RectangleTextPrint(cb, baseFont, isin, diagrammitem, X, Y); Y = Y - 15; } // LowHatPrint(cb, baseFont, page); page++; #endregion #region 3p Transactions doc.NewPage(); HatsPrint(doc, cb, baseFont, ttf); string date = DateTime.Now.ToString().Remove(11); Hat.DetailsPrint(cb, baseFont, "Cell Results * " + date, Convert.ToInt32(doc.PageSize.Width / 2 - 60), Convert.ToInt32(doc.PageSize.Height - 150), 10); table = Pcp.TablePrint(null, font, tablecreator.CellPolicy, 100, 100, 100, 130); table.WriteSelectedRows(0, -1, 100, 680, cb); Hat.DetailsPrint(cb, baseFont, "Holdings * " + date, Convert.ToInt32(doc.PageSize.Width / 2 - 60), Convert.ToInt32(doc.PageSize.Height - 270), 10); font.Size = 8; table = Pcp.TablePrint(new byte[] { 255, 255, 255 }, font, tablecreator.Holdings, 53, 35, 50, 55, 50, 70, 65, 70, 60, 50); table.WriteSelectedRows(0, -1, 25, 560, cb); LowHatPrint(cb, baseFont, page); table = new PdfPTable(5); var TBL = tablecreator.Transactions; var Count = Math.Abs(TBL.Rows.Count / 50) + 1; for (int i = 0; i < Count; i++) { doc.NewPage(); HatsPrint(doc, cb, baseFont, ttf); Hat.DetailsPrint(cb, baseFont, "Transactions * " + date, Convert.ToInt32(doc.PageSize.Width / 2 - 60), Convert.ToInt32(doc.PageSize.Height - 150), 10); table = Pcp.TablePrint(null, font, TBL, 103, 103, 103, 103, 103, 0, 0, 0, 0, 0, i, 50, Count - 1); table.WriteSelectedRows(0, -1, 25, 680, cb); page++; LowHatPrint(cb, baseFont, page); } page++; #endregion #region N page - end doc.NewPage(); HatsPrint(doc, cb, baseFont, ttf); cb.BeginText(); cb.ShowTextAligned(0, "Important Remarks : ", 30, 680, 0); ColumnText ct = new ColumnText(cb); Phrase myText = new Phrase(BigTextData.Remarks, font); ct.SetSimpleColumn(myText, 30, 665, 580, 317, 15, Element.ALIGN_LEFT); ct.Go(); cb.EndText(); LowHatPrint(cb, baseFont, page); #endregion doc.Close(); } if (open == true) { OpenReport(); } }
private static void InitializeGraphOnCells(State state, IDictionary <Gap, double> mass, Diagramm dgrm) { for (var b = 0; b < state.MapHeight; b++) { for (var a = 0; a < state.MapWidth; a++) { var point = new Point(a, b); for (var cb = -1; cb <= 1; cb++) { for (var ca = -1; ca <= 1; ca++) { if (ca != 0 && cb != 0) { continue; } var neighbour = new Point(a + ca, b + cb); if (!state.InsideMap(neighbour)) { continue; } if (state.IsWallAt(neighbour)) { continue; } var pointNumber = StepCheck(point, state.MapWidth); var neighbourNumber = StepCheck(neighbour, state.MapWidth); mass[dgrm.Connect(pointNumber, neighbourNumber)] = state.CellCost[neighbour.X, neighbour.Y]; } } } } }
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); }
private void btnPostleitzahlen_Click(object sender, EventArgs e) { grdView.Rows.Clear(); diaght = null; diaglg = null; panRight.Controls.Clear(); List <XYPoint> werte = null; DiagParam mp = new DiagParam("", ""); Kurve curve4 = new Kurve(); // SQLiteConnection.CreateFile("MyDatabase.sqlite"); SQLiteConnection m_dbConnection; SQLiteDataReader reader = null; m_dbConnection = new SQLiteConnection("Data Source=meinedatenbank.db"); m_dbConnection.Open(); String xf = "select Breite, Laenge, ort from geos order by breite"; SQLiteCommand command = new SQLiteCommand(xf, m_dbConnection); try { // command.ExecuteNonQuery(); reader = command.ExecuteReader(); } catch (Exception ex) { MessageBox.Show(ex.Message); } String[] columnNames = new String[2]; columnNames[0] = "Breite"; columnNames[1] = "Laenge"; //werte = curve.getWerte(); //if (werte != null) // werte.Clear(); //else werte = new List <XYPoint>(); while (reader.Read()) { XYPoint p = new XYPoint(); p.setstr(reader.GetString(2)); p.setX(reader.GetDouble(1)); p.setY(reader.GetDouble(0)); if (!(((p.getX() < 1) || (p.getX() > 40) || (p.getY() < 40) || (p.getY() > 60)))) { werte.Add(p); /* * int nRow = grdView.Rows.Add(); * DataGridViewRow grdRow = grdView.Rows[nRow]; * DataGridViewCellCollection grdCell = grdRow.Cells; * grdCell[0].Value = nRow.ToString(); * grdCell[1].Value = p.getstr(); * grdCell[2].Value = p.getX(); * grdCell[3].Value = p.getY(); */ } } curve4.setParser(null); curve4.setKurvenart(Punktform.RECHTECK_HOHL); curve4.setKurvenfarbe(Color.Red); curve4.setXEinheit(""); curve4.setYEinheit(""); curve4.setFktText(""); curve4.setWerte(werte); curve4.bestimmeMinMaxWerte(); mp.setcRahmenfarbe(Color.Black); /* * if (radNurDatum.isSelected()) * curve4.setDatumart(Datumart.NurDatum); * else if (radNurZeit.isSelected()) * curve4.setDatumart(Datumart.NurZeit); * else if (radZeitDatum.isSelected()) * curve4.setDatumart(Datumart.DatumUndZeit); */ curves = new List <Kurve>(); curves.Add(curve4); diag = new Diagramm(5, 16, 47, 56, curves, mp); diag.ShowSpecialValuesString = "dorf"; diag.ShowSpecialValuesColor = Color.Blue; diag.ShowSpecialValues = true; //pan.Refresh(); double dxmin = curve4.getxMin(); double dxmax = curve4.getxMax(); double dymin = curve4.getyMin(); double dymax = curve4.getyMin(); diag.setxRaster(true); diag.setyRaster(true); // curve4.bestimmeMinMaxWerte(); diag.setxMin(curve4.getxMin()); diag.setxMax(curve4.getxMax()); diag.setyMin(curve4.getyMin()); diag.setyMax(curve4.getyMax()); diag.BackColor = Color.LightGreen; diag.HintColor = Color.Black; diag.WithShowString = true; //diag.Refresh(); panRight.Controls.Add(diag); }
private void btnLaendergrenzensqlite_Click(object sender, EventArgs e) { grdView.Rows.Clear(); diag = null; diaglg = null; panRight.Controls.Clear(); List <XYPoint> werte = null; DiagParam mp = new DiagParam("", ""); mp.setcRahmenfarbe(Color.Black); Kurve curve4 = new Kurve(); // SQLiteConnection.CreateFile("MyDatabase.sqlite"); if (dbKind == DatabaseKind.dbSqlite) { SQLiteConnection m_dbConnection; SQLiteDataReader reader = null; m_dbConnection = new SQLiteConnection("Data Source=SqliteLaendergrenzen.db"); m_dbConnection.Open(); String xf = "select idx,breite,laenge from laendergrenzen order by breite"; SQLiteCommand command = new SQLiteCommand(xf, m_dbConnection); try { reader = command.ExecuteReader(); } catch (Exception ex) { MessageBox.Show(ex.Message); } String[] columnNames = new String[2]; columnNames[0] = "Breite"; columnNames[1] = "Laenge"; werte = new List <XYPoint>(); while (reader.Read()) { XYPoint p = new XYPoint(); int sname = reader.GetInt32(0); p.setstr(sname.ToString()); double dx = reader.GetDouble(2); double dy = reader.GetDouble(1); /* * string sx = reader.GetString(2); * string sy = reader.GetString(1); * sx.Replace(',', '.'); * sy.Replace(',', '.'); * double dx = Convert.ToDouble(sx); * double dy = Convert.ToDouble(sy); */ p.setX(dx); p.setY(dy); if (!(((p.getX() < 1) || (p.getX() > 40) || (p.getY() < 40) || (p.getY() > 60)))) { werte.Add(p); int nRow = grdView.Rows.Add(); DataGridViewRow grdRow = grdView.Rows[nRow]; DataGridViewCellCollection grdCell = grdRow.Cells; grdCell[0].Value = nRow.ToString(); grdCell[1].Value = sname; grdCell[2].Value = dx.ToString(); grdCell[3].Value = dy.ToString(); } } reader.Close(); } else if (dbKind == DatabaseKind.dbAccess) { OleDbConnection con = new OleDbConnection(); OleDbCommand cmd = new OleDbCommand(); OleDbDataReader reader; con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=Haltestellen.accdb"; cmd.Connection = con; cmd.CommandText = "SELECT name,breite,laenge FROM D_Bahnhof_2017_09"; try { con.Open(); reader = cmd.ExecuteReader(); werte = new List <XYPoint>(); while (reader.Read()) { XYPoint p = new XYPoint(); string sname = reader.GetString(0); p.setstr(sname); double dx = reader.GetDouble(2); double dy = reader.GetDouble(1); //sx.Replace(',', '.'); //sy.Replace(',', '.'); //double dx = Convert.ToDouble(sx); //double dy = Convert.ToDouble(sy); p.setX(dx); p.setY(dy); if (!(((p.getX() < 1) || (p.getX() > 40) || (p.getY() < 40) || (p.getY() > 60)))) { werte.Add(p); int nRow = grdView.Rows.Add(); DataGridViewRow grdRow = grdView.Rows[nRow]; DataGridViewCellCollection grdCell = grdRow.Cells; grdCell[0].Value = nRow.ToString(); grdCell[1].Value = sname; grdCell[2].Value = dx.ToString(); grdCell[3].Value = dy.ToString();; } } reader.Close(); con.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } curve4.setParser(null); curve4.setKurvenart(Punktform.PUNKT); curve4.setKurvenfarbe(Color.Black); curve4.setXEinheit("Längengrade"); curve4.setYEinheit("Breitengrade"); curve4.setFktText(""); curve4.setWerte(werte); curve4.bestimmeMinMaxWerte(); /* * if (radNurDatum.isSelected()) * curve4.setDatumart(Datumart.NurDatum); * else if (radNurZeit.isSelected()) * curve4.setDatumart(Datumart.NurZeit); * else if (radZeitDatum.isSelected()) * curve4.setDatumart(Datumart.DatumUndZeit); */ curvesht = new List <Kurve>(); curvesht.Add(curve4); diaght = new Diagramm(5, 16, 47, 56, curvesht, mp); /* * diaght.ShowSpecialValuesString = "Hbf"; * diaght.ShowSpecialValuesColor = Color.Blue; * diaght.ShowSpecialValues = true; */ //pan.Refresh(); double dxmin = curve4.getxMin(); double dxmax = curve4.getxMax(); double dymin = curve4.getyMin(); double dymax = curve4.getyMax(); diaght.setxRaster(true); diaght.setyRaster(true); //diaght.set curve4.bestimmeMinMaxWerte(); /* * diaght.setxMin(0.0); * diaght.setxMax(20); * diaght.setyMin(40); * diaght.setyMax(70); */ diaght.setxMin(curve4.getxMin()); diaght.setxMax(curve4.getxMax()); diaght.setyMin(curve4.getyMin()); diaght.setyMax(curve4.getyMax()); diaght.BackColor = Color.LightGreen; diaght.HintColor = Color.Black; diaght.WithShowString = false; //diag.Refresh(); panRight.Controls.Add(diaght); }
private void btnGPX_Click(object sender, EventArgs e) { grdView.Rows.Clear(); diag = null; diaght = null; panRight.Controls.Clear(); List <XYPoint> werte = null; DiagParam mp = new DiagParam("", ""); mp.setcRahmenfarbe(Color.Black); Kurve curve4 = new Kurve(); // ####################################################### if (!File.Exists("Landesgrenzen.gpx")) { return; } XmlReader xr = new XmlTextReader("Landesgrenzen.gpx"); // ################################################################# werte = new List <XYPoint>(); string sx = ""; string sy = ""; while (xr.Read()) { if (xr.NodeType == XmlNodeType.Element) { if ((xr.Name == "trkpt") && (xr.AttributeCount > 0)) { while (xr.MoveToNextAttribute()) { if (xr.Name == "lat") { sy = xr.Value; } xr.MoveToNextAttribute(); if (xr.Name == "lon") { sx = xr.Value; } XYPoint p = new XYPoint(); sx.Replace('.', ','); sy.Replace('.', ','); double dx = Convert.ToDouble(sx, CultureInfo.InvariantCulture); double dy = Convert.ToDouble(sy, CultureInfo.InvariantCulture); p.setX(dx); p.setY(dy); if (!(((p.getX() < 1) || (p.getX() > 40) || (p.getY() < 40) || (p.getY() > 60)))) { werte.Add(p); int nRow = grdView.Rows.Add(); DataGridViewRow grdRow = grdView.Rows[nRow]; DataGridViewCellCollection grdCell = grdRow.Cells; grdCell[0].Value = nRow.ToString(); grdCell[1].Value = ""; grdCell[2].Value = sx; grdCell[3].Value = sy; } } } } } xr.Close(); curve4.setParser(null); curve4.setKurvenart(Punktform.PUNKT); curve4.setKurvenfarbe(Color.Black); curve4.setXEinheit("Längengrade"); curve4.setYEinheit("Breitengrade"); curve4.setFktText(""); curve4.setWerte(werte); curve4.bestimmeMinMaxWerte(); /* * if (radNurDatum.isSelected()) * curve4.setDatumart(Datumart.NurDatum); * else if (radNurZeit.isSelected()) * curve4.setDatumart(Datumart.NurZeit); * else if (radZeitDatum.isSelected()) * curve4.setDatumart(Datumart.DatumUndZeit); */ curveslg = new List <Kurve>(); curveslg.Add(curve4); diaglg = new Diagramm(5, 16, 47, 56, curveslg, mp); //diaght.ShowSpecialValuesString = "Hbf"; //diaght.ShowSpecialValuesColor = Color.Blue; //diaght.ShowSpecialValues = true; //pan.Refresh(); double dxmin = curve4.getxMin(); double dxmax = curve4.getxMax(); double dymin = curve4.getyMin(); double dymax = curve4.getyMax(); diaglg.setxRaster(true); diaglg.setyRaster(true); //diaght.set curve4.bestimmeMinMaxWerte(); /* * diaght.setxMin(0.0); * diaght.setxMax(20); * diaght.setyMin(40); * diaght.setyMax(70); */ diaglg.setxMin(curve4.getxMin()); diaglg.setxMax(curve4.getxMax()); diaglg.setyMin(curve4.getyMin()); diaglg.setyMax(curve4.getyMax()); diaglg.BackColor = Color.LightGreen; diaglg.HintColor = Color.Black; //diaght.WithShowString = true; //diag.Refresh(); panRight.Controls.Add(diaglg); }
private void oTimer_Tick(object sender, EventArgs e) { Diagramm dia = null; if ((diag != null) || (diaght != null) || (diaglg != null)) { if (diag != null) { dia = diag; } else if (diaght != null) { dia = diaght; } else if (diaglg != null) { dia = diaglg; } if (dia.CanGetPoint) { if (ePoint == EPoint.ePoint1) { lbl1.Text = dia.MouseDownString; tbLatitude1.Text = dia.YPointValue.ToString("0.###", CultureInfo.InvariantCulture); tbLongitude1.Text = dia.XPointValue.ToString("0.###", CultureInfo.InvariantCulture); ePoint = EPoint.ePoint2; lbl2.Text = ""; tbLatitude2.Text = ""; tbLongitude2.Text = ""; lblDistance.Text = ""; } else if (ePoint == EPoint.ePoint2) { lbl2.Text = dia.MouseDownString; tbLatitude2.Text = dia.YPointValue.ToString("0.###", CultureInfo.InvariantCulture); tbLongitude2.Text = dia.XPointValue.ToString("0.###", CultureInfo.InvariantCulture); ePoint = EPoint.ePoint1; double lat1, lat2, lon1, lon2; lon1 = double.Parse(tbLongitude1.Text.Replace('.', ',')); lon2 = double.Parse(tbLongitude2.Text.Replace('.', ',')); lat1 = double.Parse(tbLatitude1.Text.Replace('.', ',')); lat2 = double.Parse(tbLatitude2.Text.Replace('.', ',')); double lat = (lat1 + lat2) / 2 * 0.01745; double dx = 111.3 * Math.Cos(lat) * (lon1 - lon2); double dy = 111.3 * (lat1 - lat2); double distance = Math.Sqrt(dx * dx + dy * dy); lblDistance.Text = "Abstand: " + distance.ToString("0.##", CultureInfo.InvariantCulture) + " km"; } dia.CanGetPoint = false; } } }
private void Button_Click_2(object sender, RoutedEventArgs e) { Diagramm diagramm = new Diagramm(); diagramm.Show(); }