![]() |
[DirectX 9] 2D Transformationsmatrix ist an X Achse gespiegelt
Hallo zusammen,
ich habe bisher mit D3DFVF_XYZRHW Vertices 2-dimensionale Figuren auf ein DirectX Surface gezeichnet. Hierbei sind die X und Y Koordinaten bereits transformiert und der Ursprung liegt wie gewohnt bei (0, 0) in der oberen linken Ecke. Jetzt würde ich gerne die Skalierung und Rotation von Objekten ändern und kann muss deshalb auf D3DFVF_XYZ umsteigen. Mit folgendem Code habe ich versucht die entsprechenden Transformationsmatrizen so zu setzen, dass der Ursprung wieder in der oberen linken Ecke liegt:
Delphi-Quellcode:
Obige Transformation setzt den Ursprung allerdings aus irgendeinem Grund an die untere linke Ecke. Meine Versuche mit
procedure TForm7.SetMatrix;
var matOrtho2D, matIdentity: TD3DXMatrix; begin D3DXMatrixOrthoOffCenterLH(matOrtho2D, 0, ClientRect.Right, 0, ClientRect.Bottom, 0.0, 1.0); D3DXMatrixIdentity(matIdentity); FDevice.SetTransform(D3DTS_PROJECTION, matOrtho2D); FDevice.SetTransform(D3DTS_WORLD, matIdentity); FDevice.SetTransform(D3DTS_VIEW, matIdentity); end; ![]() ![]() :arrow: Hat jemand eine Idee, wie ich das beheben kann? Viele Grüße Zacherl |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz