/// <summary> /// Rysowanie pikiety /// </summary> /// <param name="g"></param> public override void Rysuj(Graphics g) { Font font = StylSzkicu.PikietaFont; if (!KodTerenu.IsValid(_kodTerenu)) { font = StylSzkicu.InvalidFont; } string tekst = string.Format("{0} {1}", _numerPrzekroju, string.IsNullOrEmpty(_kodTerenu) ? "" : "(" + _kodTerenu + ")"); int size = 4; int x = _x - size / 2; int y = _y - size / 2; if (_selected) { g.DrawString(tekst, font, StylSzkicu.SelectedBrush, _x + size * 2, y, _format); } else { g.DrawString(tekst, font, StylSzkicu.PikietaBrush, _x + size * 2, y, _format); } g.FillEllipse(new SolidBrush(Color.DarkGreen), x, y, size, size); //wypełnienie g.DrawEllipse(StylSzkicu.TekstPen, x, y, size, size); //obwódka punktu }
/// <summary> /// Rysowanie drogi na szkicu /// </summary> /// <param name="g"></param> /// <param name="szkic"></param> public override void Rysuj(Graphics g, Szkic szkic) { if (!AktualizujPikiety(szkic)) { return; } int x1 = szkic.Obszar.Left, y1 = _startPikieta.Y; int x2 = szkic.Obszar.Right, y2 = _endPikieta.Y; int w = x2 - x1; //szerokość int h = y2 - y1; //wysokość int y = (y1 + y2) / 2; //środek wysokości if (h < 0) { h = -h; } if (h == 0) { h = 2; } g.DrawString(KodTerenu.OpisDrogi(_endPikieta.KodFormyTerenu), StylSzkicu.TekstFont, StylSzkicu.TekstBrush, x1, y, _format); //Rysowanie przerywanych linii drogi for (int x = x1; x < x2; x += h / 2) //przesuwamy się w prawo co jedną wysokość { int dx = x + h / 4; if (dx > x2) { dx = x2; } g.DrawLine(StylSzkicu.TekstPen, x, y1, dx, y1); g.DrawLine(StylSzkicu.TekstPen, x, y2, dx, y2); } }
/// <summary> /// Czy jest drogą /// </summary> /// <returns></returns> public bool JestDroga() { return(KodTerenu.IsDroga(_kodTerenu)); }
/// <summary> /// Czy jest korytem /// </summary> /// <returns></returns> public bool JestKorytem() { return(KodTerenu.IsKoryto(_kodTerenu)); }