private void PbPlot_MouseWheel(object sender, MouseEventArgs e) { double zoomAmount = 0.15; PointF zoomCenter = plt.CoordinateFromPixel(e.Location); if (e.Delta > 0) { plt.AxisZoom(1 + zoomAmount, 1 + zoomAmount, zoomCenter); } else { plt.AxisZoom(1 - zoomAmount, 1 - zoomAmount, zoomCenter); } if (plt.mouseTracker.lowQualityWhileInteracting && plt.mouseTracker.mouseWheelHQRenderDelay > 0) { Render(false, true); lastInteractionTimer.Interval = plt.mouseTracker.mouseWheelHQRenderDelay; // delay in ms lastInteractionTimer.Start(); } else { Render(skipIfCurrentlyRendering: false); } }
private void UserControl_MouseWheel(object sender, MouseWheelEventArgs e) { // note: AxisZoom's zoomCenter argument could be used to zoom to the cursor (see code in FormsPlot.cs). // However, this requires some work and testing to ensure it works if DPI scaling is used too. // Currently, scroll-wheel zooming simply zooms in and out of the center of the plot. double zoomAmountY = 0.15; double zoomAmountX = 0.15; if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)) { zoomAmountY = 0; } if (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt)) { zoomAmountX = 0; } if (e.Delta > 1) { plt.AxisZoom(1 + zoomAmountX, 1 + zoomAmountY); } else { plt.AxisZoom(1 - zoomAmountX, 1 - zoomAmountY); } Render(skipIfCurrentlyRendering: false); }
private void PbPlot_MouseWheel(object sender, MouseEventArgs e) { if (e.Delta > 0) { plt.AxisZoom(1.5, 1.5); } else { plt.AxisZoom(0.5, 0.5); } Render(); }
private void PbPlot_MouseWheel(object sender, MouseEventArgs e) { double zoomAmount = 0.15; PointF zoomCenter = plt.CoordinateFromPixel(e.Location); if (e.Delta > 0) { plt.AxisZoom(1 + zoomAmount, 1 + zoomAmount, zoomCenter); } else { plt.AxisZoom(1 - zoomAmount, 1 - zoomAmount, zoomCenter); } Render(skipIfCurrentlyRendering: false); }
private void PbPlot_MouseWheel(object sender, MouseEventArgs e) { double xFrac = (e.Delta > 0) ? 1.15 : 0.85; double yFrac = (e.Delta > 0) ? 1.15 : 0.85; plt.AxisZoom(xFrac, yFrac, plt.CoordinateFromPixel(e.Location)); Render(); OnAxisChanged(); }
private void PbPlot_MouseWheel(object sender, MouseEventArgs e) { double xFrac = (e.Delta > 0) ? 1.15 : 0.85; double yFrac = (e.Delta > 0) ? 1.15 : 0.85; if (ModifierKeys.HasFlag(Keys.Control)) { yFrac = 1; } if (ModifierKeys.HasFlag(Keys.Alt)) { xFrac = 1; } plt.AxisZoom(xFrac, yFrac, plt.CoordinateFromPixel(e.Location)); Render(); OnAxisChanged(); }
private void PbPlot_MouseWheel(object sender, MouseEventArgs e) { double xFrac = (e.Delta > 0) ? 1.15 : 0.85; double yFrac = (e.Delta > 0) ? 1.15 : 0.85; if (isVerticalLocked) { yFrac = 1; } if (isHorizontalLocked) { xFrac = 1; } plt.AxisZoom(xFrac, yFrac, plt.CoordinateFromPixel(e.Location)); Render(); OnAxisChanged(); }
public void Test_Scatter_ZoomWorksWithOnePoint() { // Tests a bug where plots with a single point (axis span 0) can't zoom // https://github.com/ScottPlot/ScottPlot/issues/768 double[] dataX = { 42 }; double[] dataY = { 303 }; // create a scatter plot with a single point var plt = new ScottPlot.Plot(400, 300); plt.AddScatter(dataX, dataY); var bmp1 = TestTools.GetLowQualityBitmap(plt); // zoom in plt.AxisZoom(2, 2); var bmp2 = TestTools.GetLowQualityBitmap(plt); // ensure the bitmap changed Assert.AreNotEqual(ScottPlot.Tools.BitmapHash(bmp1), ScottPlot.Tools.BitmapHash(bmp2)); }