Entwickler-Ecke
Multimedia / Grafik - Grafik Zentriert rotieren
VampireSilence - So 06.11.11 15:23
Titel: Grafik Zentriert rotieren
Hallo Zusammen,
ich versuche eine Grafik so auf der Stelle zu drehen, dass ihr Mittelpunkt immer am gleichen Punkt ist (so wie ein Autorad). Das mit dem Drehen funktioniert auch, aber nur um den Punkt(0,0). Ich habe mir also gedacht, ich verändere einfach den Origin-Point in der umgekehrten Richtung, den ich dann dem DrawImage übergebe. Dieser müsste sich ja dann um die Grafik herumdrehen und das Bild dann immer an der gleichen Stelle rendern lassen (theoretisch!). Aber das funktioniert nicht, oder ich komme einfach nicht drauf. Jedenfalls sitze ich jetzt schon seit geschlagenen 2 Stunden an diesem blöden Punkt und es wird einfach nichts. Der Code sieht gerade so aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| e.Graphics.RotateTransform(angle, System.Drawing.Drawing2D.MatrixOrder.Prepend ); Point origin =new Point(20 - (int)(Math.Cos(-angle / 180.0f * Math.PI) * 20),24 - (int)(Math.Sin(-angle / 180.0f * Math.PI) * 20)); e.Graphics.DrawImage(source, origin ); |
Ich verzweifle gerade dadran, das muss doch irgendwie zu machen sein. Hoffe ihr habt da nen Tipp für mich.
mfg
- VampireSilence
VampireSilence - Mo 07.11.11 20:03
Das hatte ich schon gefunden, aber die Methode hat den Nachteil, dass sie das Bild nach und nach immer unschärfer macht. Ich habe mir jetzt damit geholfen, dass ich zuerst die Bilder mit Gimp vorbereite (60 Stück, jeweils um 6° gedreht) und diese jetzt entsprechend abrufe. Das hat auch noch den Vortei, dass es etwas performanter abläuft, da keine Berechnungen mehr durchgeführt werden müssen, sondern nur noch pixelweise kopiert wird. Klingt vielleicht erstmal umständlich, aber es funktioniert sehr gut.
mfg
- VampireSilence
Kha - Mo 07.11.11 21:03
Wie kann es denn "nach und nach immer unschärfer" werden, wenn das Quellbild gar nicht verändert wird :gruebel: ?
VampireSilence - Di 08.11.11 07:11
Oh stimmt, anstatt das selbe Bild immer wieder um 1° zu drehen, könnte ich auch das gleiche Quellbild nach und nach um steigende Winkelwerte drehen.
Aber das Argument mit der Performance bleibt. :P
mfg
- VampireSilence
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!