# AffineTransform macht programm immer langsamer



## Gast (17. Mrz 2008)

Hallo Leute,

Ich habe ein problem mit AffineTransform(rotate)bzw. anschliesendem transform des area.  und zwar wird mein programm nach wiederholtem Aufruf dieser Methode immer langsamer 

```
AffineTransform Drehung = new AffineTransform();
   Area A_Umriss = new Area(Umriss);
   double Kurve, Winkel, Winkel_diff;
   int XPos, YPos;

   public Area drehen(String Richtung)
   {
	 
	 Kurve = Kurve*Geschwindigkeit/2;
	 Drehung.setToIdentity();
	 
	 if (Richtung.equals("init"))
	 {
		 Winkel=0; 
	 }
	 if (Richtung.equals("rechts"))
	 {
		 Winkel = Winkel + Kurve; 
		 Winkel_diff = Winkel_alt-Winkel; 
		 Drehung.rotate(Math.toRadians(-Winkel_diff),XPos+75,YPos+75);
	 }
	 if (Richtung.equals("links"))
	 {
		 Winkel-=Kurve; 
		 Winkel_diff = Winkel_alt-Winkel; 
		 Drehung.rotate(-Math.toRadians(Winkel_diff),XPos+75,YPos+75);
	 }
	 
	 A_Umriss.transform(Drehung);
     if (Winkel >= 360.0) Winkel = 0;
     if (Winkel <= -360.0) Winkel = 0;
     Kurve = 1.0;
     Winkel_alt = Winkel;
     return A_Umriss;
   }
```
kann mir jemand dabei weiterhelfen? 
Danke im voraus "Gast"


----------



## Marco13 (18. Mrz 2008)

Wüßte nicht, was das mit der Methode zu tun haben sollte  ???:L 
Kannst du ein Kleines (!) Compilierbares (!) Beispiel posten, wo das Problem auftritt?


----------



## 0x7F800000 (18. Mrz 2008)

wenn programme immer langsamer werden, liegt des afaik normalerweise an irgendwelchen memory-leaks, durch die der speicher zugemüllt wird.

Da in java aber der GC fast alles automatisch aufräumt, könnte der memory-leak nur dann entstehen, wenn du zum beispiel in einer schleife andauernd Image-Objekte erstellst, die dann nicht wiederverwendest und auch nicht mit flush() freigibst. Bilder werden nämlich nicht automatisch entfernt, so hab ich das irgendwo gelesen...

sonst fällt mir ehrlichgesagt nichts ein. Siehe nach, ob du evtl irgendwo ein Image als BackBuffer versehentlich *in* irgendeiner schleife statt *vor* der schleife erzeugst.

edit: mit der affinen transformation dürfte es echt nichts zu tun haben, das ist einfach ein kleines objekt das im grunde sechs fließkommazahlen abspeichert und sonst keine ressourcen beansprucht...


----------



## Guest (20. Mrz 2008)

Hi,
ersma danke für eure antworten aber mit dem Gc kann das nichts zu tuhen haben ich habe mir den speicher mal beim Taskmanger angeschaut er lag immer sehr klein.
Ich male auch kein Bild in einer schleife (bin mein ganzes programm durchgegangen).
Das kompelierbare beispiel ist in Arbeit .
Interesanter We ise trit das problem nur auf wenn ich ein Auo drehe (das ganze wird nähmlich ein autorennen spiel).
Auf jedenfall weis ich jetz das es nichts mit affinen transformationen zusammenhägt .
vileicht macht das Area das ganze programm ja langsam.
Gast


----------

