# Drehmatrix in Java



## ostylk (13. Apr 2014)

Hi,
ich wollte eine Spiel machen wo Astereoiden kommen und eine Kanone steht in der Mitte und man muss versuchen die Astereoiden abzuschießen. Ich will jetzt aber zufällig ein Winkel berechnen lassen um in dann mit der Drehmatrix die Koordinaten auszurechnen.... leider bin ich noch sechste Klasse und habe versucht es zu verstehen meine Lehrerin hat es auch Versucht und ich GLAUBE das ich sie verstanden habe! Aber so wie das gerade beim programmieren läuft bin ich wieder am verzweifeln.... Es soll um einen zufälligen Winkel um die Kanone drehen! Ich poste mal hier den Code den ich bis jetzt so probiert habe!


```
int winkel = rnd.nextInt(360);
			if(winkel > 0 && winkel < 360){
				System.out.println("Winkel: " + winkel);
				double cos1 = Math.cos(winkel);
				System.out.println("Cos1: " + cos1);
				double sin1 = Math.sin(winkel);
				double sin2 = Math.sin(winkel);
				sin1 *= -1;
				System.out.println("Sin1: " + sin1);
				System.out.println("Sin2: " + sin2);
				
				int drehVectorx = Fenster.drehpunktAx - Fenster.xKanone;
				int drehVectory = Fenster.drehpunktAy - Fenster.yKanone;
				System.out.println("DrehvectorX: " + drehVectorx);
				System.out.println("DrehvectorY: " + drehVectory);
				
				double vorX = cos1 * drehVectorx + sin1 * drehVectory;
				double vorY = sin2 * drehVectorx + cos1 * drehVectory;
				System.out.println("vorX: " + vorX);
				System.out.println("vorY: " + vorY);
				int x = (int) (vorX + Fenster.xKanone);
				int y = (int) (vorY + Fenster.yKanone);
				
				System.out.println("X: " + x);
				System.out.println("Y: " + y);
}
```
Die Fenster.drehpunktAx und Fenster.drehpunktAy bezieht sich auf den Punkt der gedreht werden soll ich glaube bei diesem Punkt ist auch irgendwie der Fehler..... Außerdem bezieht sich Fenster.xKanone und Fenster.yKanone auf das Drehzentrum(die Kanone).

MFG ostylk


----------



## ostylk (13. Apr 2014)

Oh ich habe mein Fehler schon gefunden xD
Ich habe in der Fenster Klasse als Drehpunkt (-385) angegeben muss aber 385 sein!


----------

