public class Vektor
{
private double x;
private double y;
private double z;
public Vektor () {
x = y = z = 0;
}//1. Konstruktor
public Vektor(double x, double y, double z) {
this.x = x;
this.y = y;
this.z = z;
}// 2. Konstuktor
public Vektor(Vektor v) {
this.x = v.getx();
this.y = v.gety();
this.z = v.getz();
}// 3. Konstuktor
private double getx() {
return this.x;
}
private double gety() {
return this.y;
}
private double getz() {
return this.z;
}
public Vektor addiere(Vektor v){
this.x = x + v.getx();
this.y = y + v.gety();
this.z = z + v.getz();
return this;
}
public Vektor subtrahiere(Vektor v) {
this.x = x - v.getx();
this.y = y - v.gety();
this.z = z - v.getz();
return this;
}
public double gibBetrag() {
return Math.sqrt(x * x + y * y + z * z);
}
public double gibSkalarprodukt(Vektor v) {
double wert;
x = x * v.getx();
y = y * v.gety();
z = z * v.getz();
wert = x + y + z;
return wert;
}
//mit lokalen Variablen, da sonst die Komponenten x,y,z nach der Reihe überschrieben werden.
public Vektor gibVektorprodukt(Vektor v){
double h = x;
double i = y;
double j = z;
this.x = (i * v.getz()) - (j * v.gety());
this.y = (j * v.getx()) - (h * v.getz());
this.z = (h* v.gety()) - (i * v.getx());
return this;
}
public String toString () {
return "(" + x + ", " + y + ", " + z + ")";
}
}
public class Test
{
public void testen() {
Vektor v0 = new Vektor (1, 2, 3);
Vektor v1 = new Vektor (v0);
//Stelle Vektor 1 als Vektorschreibweise und als Betrag dar
System.out.println ("v1 = " + v1.toString());
System.out.println ("|v1| = " + v1.gibBetrag());
//Stelle Vektor 2 als Vektorschreibweise
Vektor v2 = new Vektor (4, 5, 6);
System.out.println ("v2 = " + v2.toString());
//addiere Vektor 1 mit Vektor 2
v1.addiere(v2);
System.out.println ("v1 + v2 = " + v1.toString());
//Vektor 1 wurde mit Vektor 2 zu einem "neuen Vektor" gemacht durch die Addition
//Vektor 1 muss nun wieder die Werte von Vektor 0 erlangen um von den ursprünglichen Werten
//die entsprechende Subtraktion zu erlangen.
v1 = new Vektor(v0);
v1.subtrahiere(v2);
System.out.println ("v1 - v2 = " + v1.toString());
//Skalarprodukt von Vektor 1 und Vektor 2
v1 = new Vektor (v0);
double wert = v1.gibSkalarprodukt(v2); //Vektor, weil Methode Skalarprodukt auch einen Vektor zurückgibt
System.out.println ("v1 * v2 = " + wert);
//Vektorprodukt von Vektor 1 und Vektor 2
Vektor wert2 = v0.gibVektorprodukt(v2);
System.out.println ("v1 x v2 = " + wert2.toString() );
}
}