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 sznastka do tego Matrix , poprzedzając wektor sznastka.
Przeciążenia
Shear(Single, Single, MatrixOrder) |
Stosuje określony wektor szny do tego Matrix w określonej kolejności. |
Shear(Single, Single) |
Stosuje określony wektor sznastka do tego Matrix , poprzedzając transformację sznastką. |
Shear(Single, Single, MatrixOrder)
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
Stosuje określony wektor szny 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
Poziomy współczynnik szużycy.
- shearY
- Single
Pionowy współczynnik sznaz.
- order
- MatrixOrder
Element MatrixOrder określający kolejność (dołącz lub prepend), 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 to 0. Zastosowane do prostokąta w miejscu pochodzenia, gdy shearY
współczynnik wynosi 0, transformacja przenosi dolną krawędź poziomo o shearX
skalę wysokości prostokąta. Gdy shearX
współczynnik wynosi 0, przesuwa prawą krawędź w pionie przez shearY
czas szerokości prostokąta. Uwaga jest w porządku, gdy oba parametry są niezerowe, ponieważ wyniki są trudne do przewidzenia. Jeśli na przykład oba czynniki to 1, przekształcenie jest pojedyncze (w związku z tym niewzględne), ściskanie całej płaszczyzny do pojedynczej linii.
Dotyczy
Shear(Single, Single)
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
- Źródło:
- Matrix.cs
Stosuje określony wektor sznastka do tego Matrix , poprzedzając transformację sznastką.
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
Poziomy współczynnik szużycy.
- shearY
- Single
Pionowy współczynnik sznaz.
Przykłady
Poniższy przykład kodu jest przeznaczony do użycia z Windows Forms i wymaga PaintEventArgse
Paint obiektu zdarzenia . Kod wykonuje następującą akcję:
Rysuje prostokąt na ekranie przy użyciu zielonego pióra przed zastosowaniem przekształcenia skalowania.
Tworzy obiekt Matrix i używa go do ustawiania przekształcenia współrzędnych świata dla obiektu Graphics.
Rysuje kolejny prostokąt przy użyciu czerwonego pióra.
Rysuje wielokropek przy użyciu niebieskiego pióra.
Wynikiem jest zielony prostokąt, czerwony równoległy 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 dwa rysunki są przekształcane przed rysunkiem. Prostokąt jest przekształcany w równoległy (czerwony), a wielokropek (niebieski) jest przekształcany w przekształcony równoległy. Zwróć uwagę, że dolna część prostokąta jest przenoszona (sznana) na osi x przez współczynnik dwóch razy wzrostu 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 to 0. Zastosowane do prostokąta w miejscu pochodzenia, gdy shearY
współczynnik wynosi 0, transformacja przenosi dolną krawędź poziomo o shearX
skalę wysokości prostokąta. Gdy shearX
współczynnik wynosi 0, przesuwa prawą krawędź w pionie przez shearY
czas szerokości prostokąta. Uwaga jest w porządku, gdy oba parametry są niezerowe, ponieważ wyniki są trudne do przewidzenia. Jeśli na przykład oba czynniki to 1, przekształcenie jest pojedyncze (w związku z tym niewzględne), ściskanie całej płaszczyzny do pojedynczej linii.
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla