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); } }
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); }
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]); } }
public bool InRadarCoverageArea(MapPoint position) { double dist = PointsBaseInfomation.GetDelta(_radar.Position, position); return(Math.Abs(dist) <= _radar.RadarInfo.EndRange); }