public override void Draw(Graphics g) { if (IsVisible) { PlanetEvents detail; foreach (KeyValuePair <PlanetId, AngledLabel> kvp in Positions) { Position starPos = Ephemeris.CurrentEphemeris[Date, kvp.Key]; String symbol = StarSymbols[kvp.Key]; float angle = (float)(starPos.Longitude); float radius; detail = new PlanetEvents(Ephemeris.CurrentEphemeris, Date, kvp.Key); if (detail.LongitudeStatus != RectascensionMode.None || detail.LatitudeStatus != DeclinationMode.None || detail.DistanceStatus != DistanceMode.None) { radius = Ruler.RulerRadius(Container, 1.5f); } else { radius = Ruler.RulerRadius(Container, 0.5f); } AngledLabel outPos = new AngledLabel(Container, symbol, kvp.Value.LabelFont, kvp.Value.FontBrush, radius, angle); outPos.Draw(g); PointF start = Container.RelativeToCenter(Ruler.RulerRadius(Container, 1.5f), angle, 0); PointF end = Container.RelativeToCenter(Ruler.RulerRadius(Container, 0.5f), angle, 0); g.DrawLine(StarPen, start, end); kvp.Value.Draw(g); } } }
public List <AngledLabel> AddLables(List <String> lables, Font font, Brush fontBrush, float distance, float offset, float rotation, Brush brush, Pen pen) { if (font == null || fontBrush == null) { throw new ArgumentNullException(); } if (!Toolkit.Contains(font)) { Toolkit.Add(font); } if (!Toolkit.Contains(fontBrush)) { Toolkit.Add(fontBrush); } if (pen != null && !Toolkit.Contains(pen)) { Toolkit.Add(pen); } if (brush != null && !Toolkit.Contains(brush)) { Toolkit.Add(brush); } int repetition = lables.Count; float step = (360 / repetition); float angle; List <AngledLabel> labels = new List <AngledLabel>(); for (int i = 0; i < repetition; i++) { angle = i * step + offset; AngledLabel label = new AngledLabel(Container, lables[i], font, fontBrush, distance, angle, rotation, brush, pen); Add(label); labels.Add(label); } return(labels); }
public List <AngledLabel> AddLables(Font font, Brush fontBrush, float distance, float angleOffset, float rotation, int repetition, Brush brush, Pen pen) { if (font == null || fontBrush == null) { throw new ArgumentNullException(); } if (!Toolkit.Contains(font)) { Toolkit.Add(font); } if (!Toolkit.Contains(fontBrush)) { Toolkit.Add(fontBrush); } if (!Toolkit.Contains(pen) && pen != null) { Toolkit.Add(pen); } if (!Toolkit.Contains(brush) && brush != null) { Toolkit.Add(brush); } float angle; float step = 360f / repetition; List <AngledLabel> labels = new List <AngledLabel>(); for (int i = 0; i < repetition; i++) { angle = i * step + angleOffset; AngledLabel label = new AngledLabel(Container, angle.ToString(), font, fontBrush, distance, angle, rotation, brush, pen); Add(label); labels.Add(label); } return(labels); }