Matrix.Shear Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Applica il vettore di taglio specificato a questa classe Matrix anteponendolo.
Overload
Shear(Single, Single, MatrixOrder) |
Applica il vettore di taglio specificato alla classe Matrix nell'ordine indicato. |
Shear(Single, Single) |
Applica il vettore di taglio specificato a questa classe Matrix anteponendo la trasformazione di taglio. |
Shear(Single, Single, MatrixOrder)
- Origine:
- Matrix.cs
- Origine:
- Matrix.cs
- Origine:
- Matrix.cs
Applica il vettore di taglio specificato alla classe Matrix nell'ordine indicato.
public:
void Shear(float shearX, float shearY, System::Drawing::Drawing2D::MatrixOrder order);
public void Shear (float shearX, float shearY, System.Drawing.Drawing2D.MatrixOrder order);
member this.Shear : single * single * System.Drawing.Drawing2D.MatrixOrder -> unit
Public Sub Shear (shearX As Single, shearY As Single, order As MatrixOrder)
Parametri
- shearX
- Single
Fattore di taglio orizzontale.
- shearY
- Single
Fattore di taglio verticale.
- order
- MatrixOrder
Enumerazione MatrixOrder che specifica l'ordine (antecedente o posticipato) in cui viene applicato il taglio.
Esempio
Per un esempio, vedere Shear(Single, Single).
Commenti
La trasformazione applicata in questo metodo è un taglio puro solo se uno dei parametri è 0. Applicato a un rettangolo all'origine, quando il shearY
fattore è 0, la trasformazione sposta orizzontalmente shearX
il bordo inferiore in base all'altezza del rettangolo. Quando il shearX
fattore è 0, sposta verticalmente il bordo destro in senso shearY
verticale in base alla larghezza del rettangolo. Attenzione è in ordine quando entrambi i parametri sono diversi da zero, perché i risultati sono difficili da prevedere. Ad esempio, se entrambi i fattori sono 1, la trasformazione è singolare (di conseguenza non invertibile), accodando l'intero piano a una singola riga.
Si applica a
Shear(Single, Single)
- Origine:
- Matrix.cs
- Origine:
- Matrix.cs
- Origine:
- Matrix.cs
Applica il vettore di taglio specificato a questa classe Matrix anteponendo la trasformazione di taglio.
public:
void Shear(float shearX, float shearY);
public void Shear (float shearX, float shearY);
member this.Shear : single * single -> unit
Public Sub Shear (shearX As Single, shearY As Single)
Parametri
- shearX
- Single
Fattore di taglio orizzontale.
- shearY
- Single
Fattore di taglio verticale.
Esempio
L'esempio di codice seguente è progettato per l'uso con Windows Forms e richiede PaintEventArgse
, un Paint oggetto evento. Il codice esegue l'azione seguente:
Disegna un rettangolo sullo schermo, usando una penna verde, prima di applicare una trasformazione di ridimensionamento.
Crea un Matrix oggetto e lo usa per impostare una trasformazione della coordinata globale per .Graphics
Disegna un altro rettangolo utilizzando una penna rossa.
Disegna un'ellisse utilizzando una penna blu.
Il risultato è un rettangolo verde, un parallelogramma rosso e un ellisse blu trasformato. Si noti che il rettangolo verde (disegnato prima di impostare la trasformazione) usa direttamente le coordinate fornite nella DrawRectangle chiamata. Le altre due figure vengono trasformate prima del disegno. Il rettangolo viene trasformato in un parallelogramma (rosso) e l'ellisse (blu) viene trasformato per adattarsi al parallelogramma trasformato. Si noti che la parte inferiore del rettangolo viene spostata (a forma di sheare) nell'asse x da un fattore di due volte l'altezza del rettangolo, formando così il parallelogramma.
public:
void MatrixShearExample( PaintEventArgs^ e )
{
Matrix^ myMatrix = gcnew Matrix;
myMatrix->Shear( 2, 0 );
e->Graphics->DrawRectangle( gcnew Pen( Color::Green ), 0, 0, 100, 50 );
e->Graphics->MultiplyTransform( myMatrix );
e->Graphics->DrawRectangle( gcnew Pen( Color::Red ), 0, 0, 100, 50 );
e->Graphics->DrawEllipse( gcnew Pen( Color::Blue ), 0, 0, 100, 50 );
}
public void MatrixShearExample(PaintEventArgs e)
{
Matrix myMatrix = new Matrix();
myMatrix.Shear(2, 0);
e.Graphics.DrawRectangle(new Pen(Color.Green), 0, 0, 100, 50);
e.Graphics.MultiplyTransform(myMatrix);
e.Graphics.DrawRectangle(new Pen(Color.Red), 0, 0, 100, 50);
e.Graphics.DrawEllipse(new Pen(Color.Blue), 0, 0, 100, 50);
}
Public Sub MatrixShearExample(ByVal e As PaintEventArgs)
Dim myMatrix As New Matrix
myMatrix.Shear(2, 0)
e.Graphics.DrawRectangle(New Pen(Color.Green), 0, 0, 100, 50)
e.Graphics.MultiplyTransform(myMatrix)
e.Graphics.DrawRectangle(New Pen(Color.Red), 0, 0, 100, 50)
e.Graphics.DrawEllipse(New Pen(Color.Blue), 0, 0, 100, 50)
End Sub
Commenti
La trasformazione applicata in questo metodo è un taglio puro solo se uno dei parametri è 0. Applicato a un rettangolo all'origine, quando il shearY
fattore è 0, la trasformazione sposta orizzontalmente shearX
il bordo inferiore in base all'altezza del rettangolo. Quando il shearX
fattore è 0, sposta verticalmente il bordo destro in senso shearY
verticale in base alla larghezza del rettangolo. Attenzione è in ordine quando entrambi i parametri sono diversi da zero, perché i risultati sono difficili da prevedere. Ad esempio, se entrambi i fattori sono 1, la trasformazione è singolare (di conseguenza non invertibile), accodando l'intero piano a una singola riga.
Si applica a
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per