예제 #1
0
        public static void DrawCelestialObjectDirection(ICelestialObject celestialObject, PointF location, Graphics graphics, ScreenParameters screenParameters)
        {
            var screenCoordinates = UI.ToScreenCoordinates(screenParameters, new PointF(location.X, location.Y));

            if ((CelestialObjectTypes)celestialObject.Classification == CelestialObjectTypes.Explosion)
            {
                return;
            }

            var move = SpaceMapTools.Move(screenCoordinates, 8, 6, celestialObject.Direction);

            SpaceMapGraphics.DrawArrow(graphics, move, Color.DimGray);
        }
예제 #2
0
        private static void DrawCurveTrajectory(Graphics graphics, List <SpaceMapObjectLocation> results, Color color, ScreenParameters screenParameters, bool isDrawArrow = false)
        {
            var points = new List <PointF>();

            foreach (var position in results)
            {
                var screenCoordinates = UI.ToScreenCoordinates(screenParameters, new PointF(position.Coordinates.X, position.Coordinates.Y));

                points.Add(new PointF(screenCoordinates.X, screenCoordinates.Y));
            }

            var lastPoint = results[results.Count - 1];

            var pointInSpaceCoordinates = UI.ToScreenCoordinates(screenParameters, new PointF(lastPoint.Coordinates.X, lastPoint.Coordinates.Y));

            var step = SpaceMapTools.Move(pointInSpaceCoordinates, 4000, 0, lastPoint.Direction);

            if (points.Count > 2)
            {
                graphics.DrawCurve(new Pen(color), points.ToArray());
            }

            graphics.DrawLine(new Pen(color), step.PointFrom, step.PointTo);

            var move = SpaceMapTools.Move(pointInSpaceCoordinates, 0, 0, lastPoint.Direction);

            SpaceMapGraphics.DrawArrow(graphics, move, color, 12);

            #region Show linear movement
            //foreach (var position in results)
            //{
            //    var screenCoordinates = UI.ToScreenCoordinates(_screenParameters, new PointF(position.Coordinates.X, position.Coordinates.Y));

            //    if (position.Status == MovementType.Linear)
            //    {
            //        graphics.DrawEllipse(new Pen(Color.Brown, 1), screenCoordinates.X, screenCoordinates.Y, 2, 2 );
            //    }
            //}
            #endregion
        }
예제 #3
0
 private static void DrawDirection(IScreenInfo screenInfo, ICelestialObject currentObject, Color color)
 {
     SpaceMapGraphics.DrawLongLine(screenInfo, currentObject, Color.FromArgb(22, 22, 22));
     SpaceMapGraphics.DrawArrow(screenInfo, currentObject, color);
 }