示例#1
0
        private void MouseMovedToZoom(InputState input)
        {
            if (Configuration.RightClickDragZoom == false)
            {
                return;
            }

            var originalLimits = Plot.GetAxisLimits();

            if (input.ShiftDown && input.CtrlDown)
            {
                float dx    = input.X - Settings.MouseDownX;
                float dy    = Settings.MouseDownY - input.Y;
                float delta = Math.Max(dx, dy);
                Settings.MouseZoom(Settings.MouseDownX + delta, Settings.MouseDownY - delta);
            }
            else
            {
                float x = input.ShiftDown ? Settings.MouseDownX : input.X;
                float y = input.CtrlDown ? Settings.MouseDownY : input.Y;
                Settings.MouseZoom(x, y);
            }

            if (Configuration.LockHorizontalAxis)
            {
                Plot.SetAxisLimitsX(originalLimits.XMin, originalLimits.XMax);
            }

            if (Configuration.LockVerticalAxis)
            {
                Plot.SetAxisLimitsY(originalLimits.YMin, originalLimits.YMax);
            }

            RenderAfterDragging();
        }
示例#2
0
 private void MouseMovedToZoom(InputState input)
 {
     if (input.ShiftDown && input.CtrlDown)
     {
         float dx    = input.X - Settings.MouseDownX;
         float dy    = Settings.MouseDownY - input.Y;
         float delta = Math.Max(dx, dy);
         Settings.MouseZoom(Settings.MouseDownX + delta, Settings.MouseDownY - delta);
     }
     else
     {
         float x = input.ShiftDown ? Settings.MouseDownX : input.X;
         float y = input.CtrlDown ? Settings.MouseDownY : input.Y;
         Settings.MouseZoom(x, y);
     }
     Render(lowQuality: true);
 }