/// <summary>
        /// Transforms list of points from data coordinates to screen coordinates.
        /// </summary>
        /// <param name="dataPoints">Points in data coordinates</param>
        /// <param name="transform">CoordinateTransform used to perform transformation</param>
        /// <returns>Points in screen coordinates</returns>
        public static List<Point> DataToScreen(this IEnumerable<Point> dataPoints, CoordinateTransform transform)
        {
            var collection = dataPoints as ICollection<Point>;
            List<Point> res;

            if (collection != null)
            {
                res = new List<Point>(collection.Count);
            }
            else
            {
                res = new List<Point>();
            }

            foreach (var point in dataPoints)
            {
                res.Add(transform.DataToScreen(point));
            }

            return res;
        }
        /// <summary>
        /// Transforms list of points from data coordinates to screen coordinates.
        /// </summary>
        /// <param name="dataPoints">Points in data coordinates</param>
        /// <param name="transform">CoordinateTransform used to perform transformation</param>
        /// <returns>Points in screen coordinates</returns>
        public static List <Point> DataToScreen(this IEnumerable <Point> dataPoints, CoordinateTransform transform)
        {
            var          collection = dataPoints as ICollection <Point>;
            List <Point> res;

            if (collection != null)
            {
                res = new List <Point>(collection.Count);
            }
            else
            {
                res = new List <Point>();
            }

            foreach (var point in dataPoints)
            {
                res.Add(transform.DataToScreen(point));
            }

            return(res);
        }
Ejemplo n.º 3
0
        private void Update()
        {
            if (ChartData == null) return;

            IEnumerable<Point> points = GetPoints();

            // Transform chart data to screen points
            Transform = new CoordinateTransform(Viewport.Visible, Viewport.Output);
            List<Point> transformedPoints = Transform.DataToScreen(points);

            // Filter unnecessary points
            //FilteredPoints = new FilteredPointList(FilterPoints(transformedPoints), Viewport.Output.Left, Viewport.Output.Right);
            FilteredPoints = transformedPoints;
        }
Ejemplo n.º 4
0
 internal CoordinateTransform WithRects(Rect visibleRect, Rect screenRect)
 {
     var copy = new CoordinateTransform(visibleRect, screenRect);
     copy.dataTransform = dataTransform;
     return copy;
 }
 /// <summary>
 /// Transforms list of points from data coordinates to screen coordinates.
 /// </summary>
 /// <param name="transform">Coordinate transform used to perform transformation</param>
 /// <param name="dataPoints">Points in data coordinates</param>
 /// <returns>List of points in screen coordinates</returns>
 public static List <Point> DataToScreen(this CoordinateTransform transform, IEnumerable <Point> dataPoints)
 {
     return(dataPoints.DataToScreen(transform));
 }