Delen via


Scheren

Sommige toepassingen bieden functies die objecten die zijn getekend in het clientgebied. Toepassingen die gebruikmaken van afschuifmogelijkheden maken gebruik van de functie SetWorldTransform om de juiste waarden in de wereldruimte in te stellen op paginaruimtetransformatie. Deze functie ontvangt een aanwijzer naar een XFORM- structuur met de juiste waarden. De eM12- en eM21-leden van XFORM geven respectievelijk de horizontale en verticale evenredigheidsconstanten op.

Er zijn twee onderdelen van de transformatie. De eerste wijzigt de verticale lijnen in een object; de tweede wijzigt de horizontale lijnen. In de volgende afbeelding ziet u een rechthoek van 20 bij 20 eenheden die horizontaal wordt gesleed bij het kopiëren van de wereldruimte naar de paginaruimte.

afbeelding van een rechthoek in de wereldruimte en een trapeziod in de paginaruimte

Een horizontale schuif kan worden vertegenwoordigd door het volgende algoritme:

x' = x + (Sx * y) 

waarbij x de oorspronkelijke x-coördinaat is, is Sx de evenredigheidsconstante en x' het resultaat van de sheartransformatie.

Een verticale schuif kan worden vertegenwoordigd door het volgende algoritme:

y' = y + (Sy * x) 

waarbij y de oorspronkelijke y-coördinaat is, is Sy de evenredigheidsconstante en y' het resultaat van de schuine transformatie.

De transformaties horizontaal en verticaal-schuine rek kunnen worden gecombineerd tot één bewerking met behulp van een matrix van 2 bij 2.

|x' y'| == |x y| * |  1   Sx| 
                   | Sy    1| 

De matrix van 2 bij 2 die de shear heeft geproduceerd, bevat de volgende waarden:

|1    1| 
|0    1|