Sdílet prostřednictvím


Graphics.ScaleTransform Metoda

Definice

Použije zadanou operaci škálování na transformační matici tohoto Graphics tím, že ji předpovědí na transformační matici objektu.

Přetížení

ScaleTransform(Single, Single)

Použije zadanou operaci škálování na transformační matici tohoto Graphics tím, že ji předpovědí na transformační matici objektu.

ScaleTransform(Single, Single, MatrixOrder)

Použije zadanou operaci škálování na transformační matici tohoto Graphics v zadaném pořadí.

ScaleTransform(Single, Single)

Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs

Použije zadanou operaci škálování na transformační matici tohoto Graphics tím, že ji předpovědí na transformační matici objektu.

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)

Parametry

sx
Single

Koeficient ve směru x.

sy
Single

Koeficient ve směru y.

Příklady

Následující příklad kódu je určený pro použití s Windows Forms a vyžaduje PaintEventArgse, což je parametr obslužné rutiny události Paint. Kód provede následující akce:

  • Otočí světovou transformační matici formuláře Windows Form o 30 stupňů.

  • Škáluje matici faktorem 3 ve směru x a faktorem 1 ve směru y tím, že předpíná transformaci škálování.

  • Nakreslí škálovaný otočený obdélník modrým perem.

Výsledek je stále obdélník.

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

Poznámky

Operace škálování se skládá z vynásobení transformační matice diagonální maticí, jejíž prvky jsou (sx, sy, 1). Tato metoda předem předpne transformační matici Graphics pomocí matice škálování.

Platí pro

ScaleTransform(Single, Single, MatrixOrder)

Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs

Použije zadanou operaci škálování na transformační matici tohoto Graphics v zadaném pořadí.

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)

Parametry

sx
Single

Koeficient ve směru x.

sy
Single

Koeficient ve směru y.

order
MatrixOrder

Člen MatrixOrder výčtu, který určuje, zda je operace škálování předem oddělena nebo připojena k matici transformace.

Příklady

Následující příklad kódu je určený pro použití s Windows Forms a vyžaduje PaintEventArgse, což je parametr obslužné rutiny události Paint. Kód provede následující akce:

  • Otočí světovou transformační matici formuláře Windows Form o 30 stupňů.

  • Škáluje matici faktorem 3 ve směru x a faktorem 1 ve směru y připojením transformace měřítka k členu Append.

  • Nakreslí otočený obdélník s modrým perem.

Výsledkem je paralelogram.

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

Poznámky

Operace škálování se skládá z vynásobení transformační matice diagonální maticí, jejíž prvky jsou (sx, sy, 1). Tato metoda předem připojí transformační matici Graphics pomocí matice škálování podle parametru order.

Platí pro