Ejemplo n.º 1
0
        public void Move(Point pPoint)
        {
            PointF delta = pPoint.ToPointF().Subtract(m_startDrag);

            m_window.SetZoom(m_window.magnification + delta.X / 300f, true);
            m_startDrag = pPoint.ToPointF();
        }
        private void AddPosition(Point pt)
        {
            double heading = double.NaN;

            if (lastPoint != default(Point))
            {
                var l = new Line
                {
                    X1 = pt.X,
                    Y1 = pt.Y,
                    X2 = lastPoint.X,
                    Y2 = lastPoint.Y
                };
                l.Stroke          = Brushes.Magenta;
                l.StrokeThickness = 0.4;
                canvas.Children.Insert(canvas.Children.Count - 1, l);

                heading = Math2.GetPolarHeadingFromLine(pt.ToPointF(), lastPoint.ToPointF());
            }

            Ellipse dot = new Ellipse();

            dot.Fill   = Brushes.Gray;
            dot.Height = dot.Width = 1;
            Canvas.SetTop(dot, pt.Y - dot.Height / 2);
            Canvas.SetLeft(dot, pt.X - dot.Width / 2);
            canvas.Children.Add(dot);
            lastPoint = pt;
        }
        public NFeature[] QueryFeatures(Point point, params string[] layers)
        {
            var xpoint   = point.ToPointF();
            var features = map.QueryRenderedFeatures(xpoint, layers);

            xpoint.Dispose();

            return(features.Select(f => f.ToFeature(true)).ToArray());
        }
        public NFeature[] QueryFeatures(Point point, float radius, params string[] layers)
        {
            var xpoint = point.ToPointF();
            var region = xpoint.ToRectF(radius);

            xpoint.Dispose();
            var features = map.QueryRenderedFeatures(region, layers);

            region.Dispose();

            return(features.Select(f => f.ToFeature(true)).ToArray());
        }
Ejemplo n.º 5
0
        public static Point GetPointDistanceAwayOnLine(this Point startPt, double length, Point linePoint, Point closerToPoint)
        {
            PointF int1, int2;

            Regression.FindLineCircleIntersections((float)startPt.X, (float)startPt.Y, (float)length,
                                                   startPt.ToPointF(), linePoint.ToPointF(), out int1, out int2);

            var result =
                int1.ToPoint().Distance(closerToPoint) < int2.ToPoint().Distance(closerToPoint) ?
                int1 : int2;

            return(result.ToPoint());
        }
Ejemplo n.º 6
0
        void OnScrollToRequested(object sender, ScrollToRequestedEventArgs e)
        {
            if (Superview == null)
            {
                _requestedScroll = e;
                return;
            }

            Point scrollPoint = (e.Mode == ScrollToMode.Position)
                                ? new Point(e.ScrollX, Element.Height - e.ScrollY)
                                : ScrollView.GetScrollPositionForElement(e.Element as VisualElement, e.Position);

            ContentView.ScrollToPoint(scrollPoint.ToPointF());
            ScrollView.SendScrollFinished();
        }
Ejemplo n.º 7
0
 public PointF PixelToPoint(Point pixel)
 {
     if (DrawLimits.IsNaN())
     {
         return(PointF_Extension.NaN);
     }
     else
     {
         Matrix   transform = Transform;
         PointF[] points    = new PointF[] { pixel.ToPointF() };
         transform.Invert();
         transform.TransformPoints(points);
         return(points[0]);
     }
 }
Ejemplo n.º 8
0
        private static void DrawCircle(Point start, Point finish, Graphics g, double cosPhi, double r)
        {
            var angel = (float)(Math.Acos(cosPhi) * 180 / Math.PI);

            if (finish.Y > start.Y)
            {
                angel = 360 - angel;
            }
            var p = new Pen(Color.Green);

            g.DrawLine(p, start.ToPointF(), finish.ToPointF());
            var textPoint = new PointF((float)(start.X + r / 4 - 16), (float)start.Y - 16);

            g.DrawString(angel.ToString("#.##°"), new Font("Consolas", 10), p.Brush, textPoint);
            g.DrawPie(p, (float)(start.X - r / 2), (float)(start.Y - r / 2), (float)r, (float)r, 360 - angel, angel);
        }
Ejemplo n.º 9
0
        private void AddPosition(Point pt, bool save = true)
        {
            double heading = double.NaN;

            if (lastPoint != default(Point))
            {
                var l = new Line
                {
                    X1 = pt.X,
                    Y1 = pt.Y,
                    X2 = lastPoint.X,
                    Y2 = lastPoint.Y
                };
                l.Stroke          = Brushes.Blue;
                l.StrokeThickness = 1;
                canvas.Children.Insert(canvas.Children.Count - 1, l);

                heading = Math2.GetPolarHeadingFromLine(pt.ToPointF(), lastPoint.ToPointF());
            }

            Ellipse dot = new Ellipse();

            dot.Fill   = Brushes.Red;
            dot.Height = dot.Width = 2;
            Canvas.SetTop(dot, pt.Y - dot.Height / 2);
            Canvas.SetLeft(dot, pt.X - dot.Width / 2);
            canvas.Children.Add(dot);
            lastPoint = pt;

            if (save)
            {
                Positions.Add(new Position {
                    pt = pt
                });
                Points.Add(new System.Drawing.PointF((float)pt.X * Metrics.SCALE_Map4_20_TO_100, (float)pt.Y * Metrics.SCALE_Map4_20_TO_100));
            }
        }
Ejemplo n.º 10
0
 public void Begin(Point pPoint)
 {
     m_startDrag = pPoint.ToPointF();
 }
Ejemplo n.º 11
0
 public void Move(Point pPoint)
 {
     PointF delta = pPoint.ToPointF().Subtract(m_startDrag);
     m_window.SetZoom(m_window.magnification + delta.X / 300f, true);
     m_startDrag = pPoint.ToPointF();
 }
Ejemplo n.º 12
0
 public void Begin(Point pPoint)
 {
     m_startDrag = pPoint.ToPointF();
 }
Ejemplo n.º 13
0
 public PointF PixelToPoint(Point pixel)
 {
     if (DrawLimits.IsNaN())
         return PointF_Extension.NaN;
     else
     {
         Matrix transform = Transform;
         PointF[] points = new PointF[] { pixel.ToPointF() };
         transform.Invert();
         transform.TransformPoints(points);
         return points[0];
     }
 }
Ejemplo n.º 14
0
        private void drawArc(Graphics graphics, Pen pen, Pen arrowPen, Point a, Point b)
        {
            const decimal f = 0.05m;
            Point c = new Point((a.X + b.X) / 2m + f * (b.Y - a.Y), (a.Y + b.Y) / 2m - f * (b.X - a.X));
            double angle = Math.Atan2((double)(b.Y - c.Y), (double)(b.X - c.X));
            Point d = new Point(b.X - 10 * (decimal)Math.Cos(angle), b.Y - 10 * (decimal)Math.Sin(angle));

            graphics.DrawCurve(pen, new PointF[] { a.ToPointF(), c.ToPointF(), b.ToPointF() }, 1f);
            graphics.DrawLine(arrowPen, d.ToPointF(), b.ToPointF());
        }