Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
            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);
            }
Ejemplo n.º 3
0
        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>());
        }
Ejemplo n.º 4
0
            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);
            }
Ejemplo n.º 5
0
        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;
            }
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
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();
             *
             */
        }
        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();
            }
        }
Ejemplo n.º 10
0
        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];
                        }
                    }
                }
            }
        }
Ejemplo n.º 11
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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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;
                }
            }
        }
Ejemplo n.º 16
0
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            Diagramm diagramm = new Diagramm();

            diagramm.Show();
        }