![]() |
Wie kann man ein BitMap in ein Trapez blitten?
Hi!
Ich habe folgendes Problem: Eine rechteckige Fläche dreht sich im 3D-Raum um die 3 Achsen und verzerrt sich dadurch, 2-dimensional gesehen, zu einem Parallelogramm oder auch gar einem Trapez oder was auch immer. Das entspricht dann einer Figur mit 4 Seiten die durch 4 Punkte definiert ist. Die Drehung der Punkte des Rechtecks im Raum zu berechnen klappt schon einwandfrei, nun möchte ich aber eine BitMap in diese verzerrte Figur hineinblitten. BitBlt und StretchBlt arbeiten aber leider immer nur mit normalen Rechtecken, PngBlt leider immer nur mit Parallelogrammen... Frage: Kennst Du eine Funktion/Prozedur aus irgendeiner Unit die sowas macht? Ich hab mir auch grad mal diese Graphics32 heruntergeladen aber leider noch keine entsprechende Funktion gefunden. Ich weiss auch genau das sowas in DirectX bzw. DelphiX eingebaut ist, denn ich habe Demos die einen Würfel im Raum drehen und die Flächen des Würfels mit ner Bitmap überziehen. Aber leider habe ich auch in DelphiX noch keine entsprechende Funktion gefunden :roll: . Gib mir bitte mal nen Tip wenn Du eine entsprechende Funktion/Unit kennst. Grüsse von TOC ! |
Re: Wie kann man ein BitMap in ein Trapez blitten?
Hallo,
in einer 3d-Engine ist das natürlcih drin. Aber ich glaube nicht, dass dass du das extrahieren kannst. Mehr weiß ich leider selbst nicht... |
Re: Wie kann man ein BitMap in ein Trapez blitten?
Hi!
Zitat:
Function RasterBlit(DestDC:Handle; Dest: Array of TPoint; SourceDC:Handle; XSrc,YScr,ScrWidth,SrcHeight:Integer;) wober "Dest" ein Array [0..3] of TPoint ist mit den 4 Punkten der Zielfigur. Ob es sowas wohl nur gibt :gruebel: ? Grüsse von TOC! |
Re: Wie kann man ein BitMap in ein Trapez blitten?
mit PlgBlt kann man ein Bild drehen und gleichzeitig verzerren. Vielleicht ist die Funktion ja was für dich.
|
Re: Wie kann man ein BitMap in ein Trapez blitten?
Hi!
Zitat:
Grüsse von TOC! |
Re: Wie kann man ein BitMap in ein Trapez blitten?
Mit der GR32-Lib funktioniert es auf jeden Fall. Mehr kann ich dir nicht (mehr) dazu sagen, nur dass du im Samples-Ordner ein entsprechendes Beispiel finden wirst. Wenn du es startest, wirst du sofort bemerken, welches ich meine.
|
Re: Wie kann man ein BitMap in ein Trapez blitten?
Hi!
Zitat:
Hey, leider gibt es scheinbar keine Graphics32 für Delphi 3.0. . In dem Paket das ich mir heruntergaladen habe ist leider Delphi 5.0 dir unterste unterstütze Version. Deshalb lass ich meine Frage auch weiterhin als offen markiert. Wenn Du eine Möglichkeit kennst dies mit einer DirectX/DelphiX-Funktion zu erreichen oder eine andere Funktion dafür kennst dann gib mir bitte einen entsprechenden Tipp. Jetzt zieh ich mir erstmal die Graphic32 rein! Die scheint echt Spitze zu sein :stupid: ! Grüsse von TOC :angel2: ! |
Re: Wie kann man ein BitMap in ein Trapez blitten?
Also du hast 3D-Punkte und willst diese nur 2D darstellen?
könnte man sich das nicht mit ein paar Vektoren selber schnitzen? (Oder habe ich dich falsch verstanden?) |
Re: Wie kann man ein BitMap in ein Trapez blitten?
Wenn du es selber bauen möchtest, so wäre als Suchwort "bilineare Interpolation" zu empfehlen. Das ganze ist auch weit simpler, als es das Wort vermuten lässt.
Ansonsten ist die Graphics32 immer eine Empfehlung wert. Fängst du ein Mal damit an zu arbeiten, willst du sie nie wieder gegen TBitmap eintauschen ;) |
Re: Wie kann man ein BitMap in ein Trapez blitten?
Liste der Anhänge anzeigen (Anzahl: 1)
Hi!
Zitat:
![]() Hey, Danke nochmal @ Khabarak für seinen Tip mit der Graphics32-Demo. Inzwichen weiss ich das man das was ich machen will eine "projektive Transformation" nennt und das die Graphics32 das auch kann! Erstes einfaches Beispiel dafür im Anhang, nur weiss ich noch nit wie man die Graphics32 übereden kann das ganze transparent zu zeichnen anstatt mit Schwarz und weiss aufzufüllen :wall: ?!? Zitat:
Die Graphics32 ist ja der reinste Wahnsinn! Was da alles eingebaut ist! Ich glaube die macht voll süchtig, ich merk´s jetzt schon :? ! Nur schade das ich keine Graphics32 für mein geliebtes D3Pro habe :( , aber ich hab ja zum Glück auch D7Pe! Grüsse von TOC :stupid: ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 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-2025 by Thomas Breitkreuz