P
Pumpanickel
Gast
Huhu,
ich möchte Vektoren im R3 drehen, habe dazu folgende drei Methoden
implementiert:
Jetzt weiß ich nur nicht ob ich das alles korrekt gemacht habe.
Es irritiert mich ein wenig das für den Vektor 1,2,3 und einer Drehung um
90° der Vektor 1,0,-0 rauskommt.....
ich möchte Vektoren im R3 drehen, habe dazu folgende drei Methoden
implementiert:
Java:
public Vector spinX(double aAngle) {
Vector temp = new Vector(this);
double tempX = temp.getX();
double tempY = ((Math.cos(Math.toRadians(aAngle) * temp.getY()) - (Math.sin(Math.toRadians(aAngle) * temp.getZ()))));
double tempZ = ((Math.sin(Math.toRadians(aAngle) * temp.getY()) + (Math.cos(Math.toRadians(aAngle) * temp.getZ()))));
temp.setX(tempX);
temp.setY(tempY);
temp.setZ(tempZ);
return temp;
}
public Vector spinY(double aAngle) {
Vector temp = new Vector(this);
double tempX = ((Math.cos(Math.toRadians(aAngle) * temp.getX()) + (Math.sin(Math.toRadians(aAngle) * temp.getZ()))));
double tempY = temp.getY();
double tempZ = ((-Math.sin(Math.toRadians(aAngle) * temp.getX()) + (Math.cos(Math.toRadians(aAngle) * temp.getZ()))));
temp.setX(tempX);
temp.setY(tempY);
temp.setZ(tempZ);
return temp;
}
public Vector spinZ(double aAngle) {
Vector temp = new Vector(this);
double tempX = ((Math.cos(Math.toRadians(aAngle) * temp.getX()) - (Math.sin(Math.toRadians(aAngle)))));
double tempY = ((Math.sin(Math.toRadians(aAngle) * temp.getX()) + (Math.cos(Math.toRadians(aAngle)))));
double tempZ = temp.getZ();
temp.setX(tempX);
temp.setY(tempY);
temp.setZ(tempZ);
return temp;
}
Jetzt weiß ich nur nicht ob ich das alles korrekt gemacht habe.
Es irritiert mich ein wenig das für den Vektor 1,2,3 und einer Drehung um
90° der Vektor 1,0,-0 rauskommt.....