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); }
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); }
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); }
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); }
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); }