Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
 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();
 }
Exemple #4
0
        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();
 }
Exemple #6
0
        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();
        }
Exemple #7
0
        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();
        }
Exemple #8
0
        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));
        }