Exemplo n.º 1
0
        public void ZoomOutWithIdentityRatio()
        {
            DataRect rect = DataRect.FromCenterSize(new Point(0.1, 0.2), 0.3, 0.4);

            DataRect zoomedOut = rect.ZoomOutFromCenter(1.0);

            Assert.AreEqual(rect, zoomedOut);
        }
Exemplo n.º 2
0
        public void ZoomOutFromCenter()
        {
            DataRect rect = DataRect.FromCenterSize(new Point(1, 1), new Size(1.6, 1.4));

            DataRect zoomedOut = rect.ZoomOutFromCenter(2.0);

            Assert.AreEqual(new Point(1 - 1.6, 1 - 1.4), zoomedOut.Location);
        }
Exemplo n.º 3
0
        public void ZoomOutFromCenterSimple()
        {
            DataRect rect = DataRect.FromCenterSize(new Point(0, 0), new Size(0.5, 0.5));

            DataRect zoomedOut = rect.ZoomOutFromCenter(2.0);

            Assert.AreEqual(new Point(-0.5, -0.5), zoomedOut.Location);
            Assert.AreEqual(1.0, zoomedOut.Width);
            Assert.AreEqual(1.0, zoomedOut.Height);
        }
Exemplo n.º 4
0
        public override DataRect Apply(DataRect oldDataRect, DataRect newDataRect, Viewport2D viewport)
        {
            double ratio = newDataRect.Width / newDataRect.Height;
            double coeff = Math.Sqrt(ratio);

            double newWidth  = newDataRect.Width / coeff;
            double newHeight = newDataRect.Height * coeff;

            Point    center = newDataRect.GetCenter();
            DataRect res    = DataRect.FromCenterSize(center, newWidth, newHeight);

            return(res);
        }
Exemplo n.º 5
0
        protected internal override IEnumerable <Point> Filter(IEnumerable <Point> series)
        {
            prevOutput = Output;
            var visible = Visible;

            prevVisible = visible;
            bounds      = DataRect.FromCenterSize(visible.GetCenter(), new Size(visible.Width * visibleIncreaseRatio, visible.Height * visibleIncreaseRatio));

            //IParallelEnumerable<Point> parallel = (IParallelEnumerable<Point>)series;

            //Trace.WriteLine("In BoundsFilter: " + Environment.TickCount);

            IEnumerable <Point> result;

            if (Environment.FirstDraw)
            {
                result = series;
            }
            else
            {
                result = series.Where(p => bounds.Contains(p));
            }
            return(result);
        }