Matrix.Shear Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Použije na to Matrix zadaný vektor smyku tak, že předsadí smykový vektor.
Přetížení
Shear(Single, Single, MatrixOrder) |
Použije zadaný vektor smyku v Matrix zadaném pořadí. |
Shear(Single, Single) |
Použije na to Matrix zadaný vektor smyku tak, že předpenduje smykovou transformaci. |
Shear(Single, Single, MatrixOrder)
- Zdroj:
- Matrix.cs
- Zdroj:
- Matrix.cs
- Zdroj:
- Matrix.cs
Použije zadaný vektor smyku v Matrix zadaném pořadí.
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
Faktor vodorovného smyku.
- shearY
- Single
Faktor svislého smyku.
- order
- MatrixOrder
A MatrixOrder určující pořadí (připojení nebo předřazení), ve kterém se smyk použije.
Příklady
Příklad naleznete v tématu Shear(Single, Single).
Poznámky
Transformace použitá v této metodě je čistým smykem pouze v případě, že je jeden z parametrů 0. Použije se u obdélníku v počátku, když shearY
je faktor 0, transformace posune dolní okraj vodorovně o shearX
násobek výšky obdélníku. shearX
Pokud je faktor 0, posune pravý okraj svisle o shearY
násobek šířky obdélníku. Opatrnost je v pořadí, pokud jsou oba parametry nenulové, protože výsledky je obtížné předpovědět. Pokud jsou například oba faktory 1, transformace je v jednotném čísle (tedy neinvertovatelné) a stiskla celou rovinu na jednu čáru.
Platí pro
Shear(Single, Single)
- Zdroj:
- Matrix.cs
- Zdroj:
- Matrix.cs
- Zdroj:
- Matrix.cs
Použije na to Matrix zadaný vektor smyku tak, že předpenduje smykovou transformaci.
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
Faktor vodorovného smyku.
- shearY
- Single
Faktor svislého smyku.
Příklady
Následující příklad kódu je navržený pro použití s model Windows Forms a vyžaduje PaintEventArgse
objekt Paint události . Kód provede následující akci:
Před použitím transformace měřítka nakreslí na obrazovku pomocí zeleného pera obdélník.
Matrix Vytvoří objekt a použije ho k nastavení transformace souřadnic světa pro objekt Graphics.
Nakreslí další obdélník pomocí červeného pera.
Nakreslí tři tečky pomocí modrého pera.
Výsledkem je zelený obdélník, červený rovnoběžník a transformovaná modrá elipsa. Všimněte si, že zelený obdélník (nakreslený před nastavením transformace) přímo používá souřadnice zadané ve DrawRectangle volání. Zbyly dvě postavy se transformují před nakreslením. Obdélník se transformuje na rovnoběžník (červený) a tři tečky (modrá) se transformují tak, aby se vešly do transformovaného rovnoběžníku. Všimněte si, že spodní část obdélníku se na ose x posune (zkrátí) dvojnásobnou výškou obdélníku, čímž vznikne rovnoběžník.
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
Poznámky
Transformace použitá v této metodě je čistým smykem pouze v případě, že je jeden z parametrů 0. Použije se u obdélníku v počátku, když shearY
je faktor 0, transformace posune dolní okraj vodorovně o shearX
násobek výšky obdélníku. shearX
Pokud je faktor 0, posune pravý okraj svisle o shearY
násobek šířky obdélníku. Opatrnost je v pořadí, pokud jsou oba parametry nenulové, protože výsledky je obtížné předpovědět. Pokud jsou například oba faktory 1, transformace je v jednotném čísle (tedy neinvertovatelné) a stiskla celou rovinu na jednu čáru.
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro