Entwickler-Ecke

Multimedia / Grafik - Bilder drehen


Delphi-Zone - Di 21.09.10 18:49
Titel: Bilder drehen
Moin und Hallo :)

Ich hab eine bestimmt für euch einfache frage...

Mit welcher anweisung drehe ich images? also z.b um 90°?

Ich wollte ein kleines Bulldozer spiel proggen ;)


Danke im Vorraus tom :)


Moderiert von user profile iconMartok: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 21.09.2010 um 19:23


der organist - Di 21.09.10 19:50

gehts dir nur um Winkel von 90,180 und 270°? oder auch alles dazwischen? Das wäre dann um einiges schwieriger...


Delphi-Zone - Di 21.09.10 19:55

Nö erstmal reich so 90° 180° und so
soll ja bloß ein bulldozer oder e.t.c auf eine andere seite drehen.

gruß tom


Hidden - Di 21.09.10 21:41

Moin!

Für rechtwinklige Drehungen musst du nur einmal überlegen: 90°(mathematisch, gegen den Uhrzeigersinn) gilt für jedes Pixel x' := y; y' := x_max - x;
Alles weitere durch Rekursion 8)

Also: Neues Bild erzeugen(tmp := TBitmap.Create;), Größe setzen, und dann die Pixel einzeln kopieren.
Was du bald merken wirst: Es ist langsam. Deshalb ist es möglich, Bilder zeilenweise zu erfassen. Alles weitere dazu findest du in der Suche, unter 'Scanline'.

Edit: Als kleines Beispiel zum drehen von Bildern allgemein kann vllt. das hier dienen: http://www.delphi-forum.de/viewtopic.php?t=83737

lg,


Gerd Kayser - Di 21.09.10 22:11

user profile iconDelphi-Zone hat folgendes geschrieben Zum zitierten Posting springen:

Mit welcher anweisung drehe ich images? also z.b um 90°?

Ich wollte ein kleines Bulldozer spiel proggen ;)

Beispiele zum Bilder drehen findest Du z. B. hier: http://www.efg2.com/Lab/index.html

Da aber wohl eher die Spieleprogrammierung bei Dir im Vordergrund steht, würde ich die Bilder einfach vorher mit einem Grafikprogramm erzeugen und in die Exe einbinden. Und dann entsprechend der Fahrtrichtung das jeweilige Bild anzeigen.


bummi - Mi 22.09.10 11:41

unter dem Eintrag Printer.Canvas -​ Drehen möglich [http://www.delphi-forum.de/viewtopic.php?p=618269#618269] findest Du eine Unit von mir die Dir dies ermöglicht.

Moderiert von user profile iconNarses: Link hinzugefügt.


helgew - Fr 24.09.10 00:51

Ich glaube ich hab da genau das richtige... schaus dir mal an, das ist eine kleine Demo.


helgew - So 26.09.10 15:46

Bist du mittlerweile vorangekommen?