Поделиться через


Graphics.ScaleTransform Метод

Определение

Применяет указанную операцию масштабирования к матрице преобразования этой Graphics путем его подготовки к матрице преобразования объекта.

Перегрузки

ScaleTransform(Single, Single)

Применяет указанную операцию масштабирования к матрице преобразования этой Graphics путем его подготовки к матрице преобразования объекта.

ScaleTransform(Single, Single, MatrixOrder)

Применяет указанную операцию масштабирования к матрице преобразования этого Graphics в указанном порядке.

ScaleTransform(Single, Single)

Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs

Применяет указанную операцию масштабирования к матрице преобразования этой Graphics путем его подготовки к матрице преобразования объекта.

public:
 void ScaleTransform(float sx, float sy);
public void ScaleTransform (float sx, float sy);
member this.ScaleTransform : single * single -> unit
Public Sub ScaleTransform (sx As Single, sy As Single)

Параметры

sx
Single

Коэффициент масштабирования в направлении x.

sy
Single

Коэффициент масштабирования в направлении y.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика событий Paint. Код выполняет следующие действия:

  • Поворот матрицы преобразования мира формы Windows Form на 30 градусов.

  • Масштабирует матрицу по коэффициенту 3 в направлении x и коэффициент 1 в направлении y путем подготовки преобразования масштабирования.

  • Рисует масштабируемый прямоугольник, вращаемый синим пером.

Результат по-прежнему прямоугольник.

public:
   void ScaleTransformFloat( PaintEventArgs^ e )
   {
      // Set world transform of graphics object to rotate.
      e->Graphics->RotateTransform( 30.0F );

      // Then to scale, prepending to world transform.
      e->Graphics->ScaleTransform( 3.0F, 1.0F );

      // Draw scaled, rotated rectangle to screen.
      e->Graphics->DrawRectangle( gcnew Pen( Color::Blue,3.0f ), 50, 0, 100, 40 );
   }
private void ScaleTransformFloat(PaintEventArgs e)
{

    // Set world transform of graphics object to rotate.
    e.Graphics.RotateTransform(30.0F);

    // Then to scale, prepending to world transform.
    e.Graphics.ScaleTransform(3.0F, 1.0F);

    // Draw scaled, rotated rectangle to screen.
    e.Graphics.DrawRectangle(new Pen(Color.Blue, 3), 50, 0, 100, 40);
}
Private Sub ScaleTransformFloat(ByVal e As PaintEventArgs)

    ' Set world transform of graphics object to rotate.
    e.Graphics.RotateTransform(30.0F)

    ' Then to scale, prepending to world transform.
    e.Graphics.ScaleTransform(3.0F, 1.0F)

    ' Draw scaled, rotated rectangle to screen.
    e.Graphics.DrawRectangle(New Pen(Color.Blue, 3), 50, 0, 100, 40)
End Sub

Комментарии

Операция масштабирования состоит из умножения матрицы преобразования на диагональную матрицу, элементы которой (sx, sy, 1). Этот метод добавляет матрицу преобразования Graphics матрицей масштабирования.

Применяется к

ScaleTransform(Single, Single, MatrixOrder)

Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs

Применяет указанную операцию масштабирования к матрице преобразования этого Graphics в указанном порядке.

public:
 void ScaleTransform(float sx, float sy, System::Drawing::Drawing2D::MatrixOrder order);
public void ScaleTransform (float sx, float sy, System.Drawing.Drawing2D.MatrixOrder order);
member this.ScaleTransform : single * single * System.Drawing.Drawing2D.MatrixOrder -> unit
Public Sub ScaleTransform (sx As Single, sy As Single, order As MatrixOrder)

Параметры

sx
Single

Коэффициент масштабирования в направлении x.

sy
Single

Коэффициент масштабирования в направлении y.

order
MatrixOrder

Элемент перечисления MatrixOrder, указывающий, является ли операция масштабирования предварительной или добавляется в матрицу преобразования.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика событий Paint. Код выполняет следующие действия:

  • Поворот матрицы преобразования мира формы Windows Form на 30 градусов.

  • Масштабирует матрицу по коэффициенту 3 в направлении x и коэффициент 1 в направлении y путем добавления преобразования масштабирования с элементом Append.

  • Рисует повернутый, масштабируемый прямоугольник с голубым пером.

Результатом является параллелограмма.

public:
   void ScaleTransformFloatMatrixOrder( PaintEventArgs^ e )
   {
      // Set world transform of graphics object to rotate.
      e->Graphics->RotateTransform( 30.0F );

      // Then to scale, appending to world transform.
      e->Graphics->ScaleTransform( 3.0F, 1.0F, MatrixOrder::Append );

      // Draw rotated, scaled rectangle to screen.
      e->Graphics->DrawRectangle( gcnew Pen( Color::Blue,3.0f ), 50, 0, 100, 40 );
   }
private void ScaleTransformFloatMatrixOrder(PaintEventArgs e)
{

    // Set world transform of graphics object to rotate.
    e.Graphics.RotateTransform(30.0F);

    // Then to scale, appending to world transform.
    e.Graphics.ScaleTransform(3.0F, 1.0F, MatrixOrder.Append);

    // Draw rotated, scaled rectangle to screen.
    e.Graphics.DrawRectangle(new Pen(Color.Blue, 3), 50, 0, 100, 40);
}
Private Sub ScaleTransformFloatMatrixOrder(ByVal e As PaintEventArgs)

    ' Set world transform of graphics object to rotate.
    e.Graphics.RotateTransform(30.0F)

    ' Then to scale, appending to world transform.
    e.Graphics.ScaleTransform(3.0F, 1.0F, MatrixOrder.Append)

    ' Draw rotated, scaled rectangle to screen.
    e.Graphics.DrawRectangle(New Pen(Color.Blue, 3), 50, 0, 100, 40)
End Sub

Комментарии

Операция масштабирования состоит из умножения матрицы преобразования на диагональную матрицу, элементы которой (sx, sy, 1). Этот метод предопределен или добавляет матрицу преобразования Graphics матрицей масштабирования в соответствии с параметром order.

Применяется к