Example #1
0
        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);
                }
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }