Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [DirectX 9] 2D Transformationsmatrix ist an X Achse gespiegelt (https://www.delphipraxis.net/178666-%5Bdirectx-9%5D-2d-transformationsmatrix-ist-x-achse-gespiegelt.html)

Zacherl 20. Jan 2014 15:41

[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:
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;
Obige Transformation setzt den Ursprung allerdings aus irgendeinem Grund an die untere linke Ecke. Meine Versuche mit MSDN-Library durchsuchenD3DXMatrixRotationX blieben leider erfolglos (mein Rechteck erscheint gar nicht mehr auf dem Bildschirm). Quelle: http://stackoverflow.com/questions/1...s-in-directx-9

:arrow: Hat jemand eine Idee, wie ich das beheben kann?

Viele Grüße
Zacherl


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz