AutoScale-Comments | jenyay.net

AutoScale-Comments

 29.03.2012 - 16:03

Пасиба огромное за пример !

Vasily 27.05.2013 - 00:31

установка равного масштаба по осям

Здравствуйте, большое спасибо за примеры они очень мне помогают. Подскажите пожалуйста как мне установить равный масшаб по осям, другими словами чтобы сохранялась форма геометрических фигур и не происходило их растягивание(сжатие) при масштабировании

Vasily 03.06.2013 - 01:57

установка равного масштаба по осям

спасибо, решил проблему самостоятельно:

 
public void SetEqualScale(GraphPane pane)
        {

            double Xmin = pane.XAxis.Scale.Min;
            double Xmax = pane.XAxis.Scale.Max;

            double Ymin = pane.YAxis.Scale.Min;
            double Ymax = pane.YAxis.Scale.Max;

            PointF PointMin = pane.GeneralTransform(Xmin, Ymin, CoordType.AxisXYScale);
            PointF PointMax = pane.GeneralTransform(Xmax, Ymax, CoordType.AxisXYScale);
            double dX = Math.Abs(Xmax - Xmin);
            double dY = Math.Abs(Ymax - Ymin);

            double Kx = dX / Math.Abs(PointMax.X - PointMin.X);
            double Ky = dY / Math.Abs(PointMax.Y - PointMin.Y);

            double K = Kx / Ky;
            //MessageBox.Show(K.ToString());
            if (K > 1.0)
            {
                pane.YAxis.Scale.Min = pane.YAxis.Scale.Min - dY * (K - 1.0) / 2.0;
                pane.YAxis.Scale.Max = pane.YAxis.Scale.Max + dY * (K - 1.0) / 2.0;
            }
            else
            {
                K = 1.0 / K;
                pane.XAxis.Scale.Min = pane.XAxis.Scale.Min - dX * (K - 1.0) / 2.0;
                pane.XAxis.Scale.Max = pane.XAxis.Scale.Max + dX * (K - 1.0) / 2.0;

            }

            // Обновим данные об осях
            zedGraphControl1.AxisChange();
            // Обновляем график
            zedGraphControl1.Invalidate();

        }