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