Matrix.Shear Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Stosuje określony wektor ścinania do tego Matrix przez poprzedzanie wektora ścinania.
Przeciążenia
Shear(Single, Single) |
Stosuje określony wektor ścinania do tego Matrix przez poprzedzanie przekształcenia ścinania. |
Shear(Single, Single, MatrixOrder) |
Stosuje określony wektor ścinania do tego Matrix w określonej kolejności. |
Shear(Single, Single)
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
Stosuje określony wektor ścinania do tego Matrix przez poprzedzanie przekształcenia ścinania.
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)
Parametry
- shearX
- Single
Współczynnik ścinania poziomego.
- shearY
- Single
Pionowy współczynnik ścinania.
Przykłady
Poniższy przykład kodu jest przeznaczony do użycia z formularzami Systemu Windows i wymaga PaintEventArgse
, obiektu zdarzenia Paint. Kod wykonuje następującą akcję:
Rysuje prostokąt na ekranie przy użyciu zielonego pióra przed zastosowaniem przekształcenia skalowania.
Tworzy Matrix i używa go do ustawiania przekształcenia współrzędnych świata dla Graphics.
Rysuje kolejny prostokąt przy użyciu czerwonego pióra.
Rysuje wielokropek za pomocą niebieskiego pióra.
Wynikiem jest zielony prostokąt, czerwony równoległogram i przekształcony niebieski wielokropek. Zwróć uwagę, że zielony prostokąt (rysowany przed ustawieniem przekształcenia) bezpośrednio używa współrzędnych podanych w wywołaniu DrawRectangle. Pozostałe dwie liczby są przekształcane przed rysunkiem. Prostokąt jest przekształcany w równoległy (czerwony), a wielokropek (niebieski) jest przekształcany w celu dopasowania do przekształconego równoległegoogramu. Zwróć uwagę, że dolna część prostokąta jest przesuwana (ścinana) na osi x przez współczynnik dwukrotny wysokości prostokąta, tworząc w ten sposób równoległyogram.
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
Uwagi
Transformacja zastosowana w tej metodzie jest czystą ścinaną tylko wtedy, gdy jeden z parametrów wynosi 0. Zastosowano do prostokąta na początku, gdy współczynnik shearY
wynosi 0, transformacja przenosi dolną krawędź poziomo przez shearX
razy wysokość prostokąta. Gdy współczynnik shearX
wynosi 0, przesuwa prawą krawędź w pionie przez shearY
razy szerokość prostokąta. Ostrożność jest w porządku, gdy oba parametry są niezerowe, ponieważ wyniki są trudne do przewidzenia. Jeśli na przykład oba czynniki mają wartość 1, przekształcenie jest pojedyncze (stąd niewzględne), ściskanie całej płaszczyzny do pojedynczej linii.
Dotyczy
Shear(Single, Single, MatrixOrder)
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
Stosuje określony wektor ścinania do tego Matrix w określonej kolejności.
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)
Parametry
- shearX
- Single
Współczynnik ścinania poziomego.
- shearY
- Single
Pionowy współczynnik ścinania.
- order
- MatrixOrder
MatrixOrder, który określa kolejność (dołączanie lub poprzedzanie), w której zastosowano ścinanie.
Przykłady
Aby zapoznać się z przykładem, zobacz Shear(Single, Single).
Uwagi
Transformacja zastosowana w tej metodzie jest czystą ścinaną tylko wtedy, gdy jeden z parametrów wynosi 0. Zastosowano do prostokąta na początku, gdy współczynnik shearY
wynosi 0, transformacja przenosi dolną krawędź poziomo przez shearX
razy wysokość prostokąta. Gdy współczynnik shearX
wynosi 0, przesuwa prawą krawędź w pionie przez shearY
razy szerokość prostokąta. Ostrożność jest w porządku, gdy oba parametry są niezerowe, ponieważ wyniki są trudne do przewidzenia. Jeśli na przykład oba czynniki mają wartość 1, przekształcenie jest pojedyncze (stąd niewzględne), ściskanie całej płaszczyzny do pojedynczej linii.