Diese Aufgabe baut auf der vorherigen Aufgabe auf. Jetzt sollen wir die Klasse um weiter Methoden erweitern. Implementieren Sie dazu Funktionen, mit denen neben der Vektorlänge
auch der Sinus , Cosinus und Tangens zwischen zwei Vektoren berechnet und
letztlich ein gegebener Vektor normiert werden kann. Jede Funktionalität soll dabei durch
eine eigenständige Methode wiedergegeben und das jeweilige Ergebnis zurückgegeben werden.
Als Parameter soll je nach Funktion 1 oder 2 Vektor(en) vom Typ ‘MyVector3D‘ übergeben
Dies ist die lösung von der Aufgabe davor.
class MyVector3D {
public int x, y, z;
public MyVector3D() {
this(0, 0, 0);
}
public MyVector3D(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}
}
public class MyVectorMath {
public static MyVector3D add(MyVector3D vec1, MyVector3D vec2) {
MyVector3D result = new MyVector3D();
result.x = vec1.x + vec2.x;
result.y = vec1.y + vec2.y;
result.z = vec1.z + vec2.z;
return result;
}
public static MyVector3D cross(MyVector3D vec1, MyVector3D vec2) {
MyVector3D result = new MyVector3D();
result.x = (vec1.y * vec2.z) - (vec1.z * vec2.y);
result.y = (vec1.z * vec2.x) - (vec1.x * vec2.z);
result.z = (vec1.x * vec2.y) - (vec1.y * vec2.x);
return result;
}
public static int dot(MyVector3D vec1, MyVector3D vec2) {
return ((vec1.x * vec2.x) + (vec1.y * vec2.y) + (vec1.z * vec2.z));
}
}