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