Ejemplo n.º 1
0
 public void UpdateMousePosition(MapPoint position)
 {
     if (PointsCount > 0 && !IsStop)
     {
         double dist = PointsBaseInfomation.GetDelta(_mapPoints[PointsCount - 1], position);
         drawLine(_mapPoints[PointsCount - 1], position, presLine);
         presDistance.Text = getDistanceText(_distance + dist);
         drawTextAnnotation(presDistance, position);
         drawEllipse(presEllipse, position);
     }
 }
Ejemplo n.º 2
0
        public void Drag(MapPoint mousePosition, MapPoint endPosition)
        {
            if (_radar.RadarStatus == null)
            {
                return;
            }
            var    radarStatus = _radar.RadarStatus;
            double angleBegin, angleEnd;
            double distBegin = PointsBaseInfomation.GetDelta(_radar.Position, mousePosition, out angleBegin);
            double distEnd   = PointsBaseInfomation.GetDelta(_radar.Position, endPosition, out angleEnd);
            double scale     = (distEnd - radarStatus.StartRange) / (distBegin - radarStatus.StartRange);

            if (scale > 0)
            {
                radarStatus.Range *= scale;
            }
            double angle = angleBegin - angleEnd;//顺时针旋转

            radarStatus.OffsetAngle = PointsBaseInfomation.GetStandardAngle(radarStatus.OffsetAngle - angle);
            _radar.SetRadarConfig(radarStatus);
        }
Ejemplo n.º 3
0
        public void Push(MapPoint position)
        {
            _mapPoints.Add(position);
            Ellipse e = new Ellipse();

            _ellipses.Add(e);
            drawEllipse(e, position);
            this.Children.Add(e);
            if (PointsCount > 1)
            {
                _lines.Add(new Line());
                this.Children.Add(_lines[_lines.Count - 1]);
                _distance += PointsBaseInfomation.GetDelta(_mapPoints[PointsCount - 2], _mapPoints[PointsCount - 1]);
                TextBlock text = new TextBlock();
                text.Text = getDistanceText(_distance);
                _distances.Add(text);
                this.Children.Add(_distances[_distances.Count - 1]);
                drawLine(_mapPoints[PointsCount - 2], _mapPoints[PointsCount - 1], _lines[_lines.Count - 1]);
                drawTextAnnotation(_distances[_distances.Count - 1], _mapPoints[PointsCount - 1]);
            }
        }
Ejemplo n.º 4
0
        public bool InRadarCoverageArea(MapPoint position)
        {
            double dist = PointsBaseInfomation.GetDelta(_radar.Position, position);

            return(Math.Abs(dist) <= _radar.RadarInfo.EndRange);
        }