Ejemplo n.º 1
0
        /// <summary>
        /// Rysowanie szkicu (wyśrodkowany na stronie)
        /// </summary>
        /// <param name="g"></param>
        public void Rysuj(Graphics g)
        {
            if (_strzalkaPolnocy)
            {
                double   a = 0, x = 1;
                PointD[] prosta = Punkty;

                if (Wektor.RegresjaWektoraProstej(prosta, ref x, ref a))
                {
                    double x1 = prosta[0].X;
                    double y1 = a * x1;

                    double x2 = prosta[prosta.Length - 1].X;
                    double y2 = a * x2;

                    if (x < 1) //prosta jest równoległa do osi Y
                    {
                        x1 = x2 = 0;
                        //obliczamy kierunek wektora prostej
                        y1 = -(prosta[0].Y - prosta[1].Y);
                        y2 = 2 * y1;
                    }

                    PointD tail = new PointD(0, 0);
                    PointD tip1 = new PointD(0, -1);
                    PointD tip2 = new PointD(x2 - x1, y2 - y1);

                    double angle = -Angles.ToDegrees(Angles.AngleBetweenOriented(tip1, tail, tip2));

                    Kierunek.RysujStrzalka(g, _obszar.Left + StylSzkicu.PikietyWidth / 2, _obszar.Top / 2, (float)angle);
                }
            }

            /*g.DrawString(string.Format("Rzeka {0} {1}", _nazwaRzeki, string.IsNullOrEmpty(_numerObiektu) ? "" : "(" + _numerObiektu + ")"),
             *  StylSzkicu.TekstFont, StylSzkicu.TekstBrush, 5, 5);*/
            g.DrawString(string.Format("Rzeka {0}", _nazwaRzeki), StylSzkicu.TekstFont, StylSzkicu.TekstBrush, 5, 5);
            g.DrawString(string.Format("Przekrój nr {0}", _numerPrzekroju),
                         StylSzkicu.TekstFont, StylSzkicu.TekstBrush, 5, 25);

            int dataY = 5;

            g.DrawString(string.Format("Data pomiaru"),
                         StylSzkicu.TekstFont, StylSzkicu.TekstBrush, _obszar.Right, dataY, _format);
            g.DrawString(string.Format("{0}", _dataPomiaru),
                         StylSzkicu.TekstFont, StylSzkicu.TekstBrush, _obszar.Right, dataY);

            if (Koryto != null)
            {
                Koryto.Rysuj(g, this);
            }

            foreach (Droga d in _drogi)
            {
                if (d.RysujNaSzkicu)
                {
                    d.Rysuj(g, this);
                }
            }
            foreach (Skarpa s in _skarpy)
            {
                if (s.RysujNaSzkicu)
                {
                    s.Rysuj(g, this);
                }
            }

            foreach (Pikieta p in _pikiety)
            {
                p.Rysuj(g);
            }

            foreach (Fotografia f in _fotografie)
            {
                if (f.RysujNaSzkicu)
                {
                    f.Rysuj(g);
                }
            }

            foreach (Zabudowa z in _zabudowy)
            {
                if (z.RysujNaSzkicu)
                {
                    z.Rysuj(g);
                }
            }

            foreach (Tekst t in _teksty)
            {
                if (t.RysujNaSzkicu)
                {
                    t.Rysuj(g);
                }
            }
        }