Java:
/* Methode zum subtrahieren zweier Punkte*/
public Vertex sub(Vertex that){
return new Vertex(this.getX()-that.getX(),this.getY()-that.getY());
}
/*Methode die den Abstand zweier Punkte berechnet*/
public double distance(Vertex that){
Vertex c = this.sub(that);
System.out.println(c);
return Math.sqrt(c.x*c.x + c.y*c.y);
}
/* Normalisierter Vektor , wenn sein Betrag 1 ist.*/
public Vertex normalize(){
return new Vertex(this.getX()/distance(this),
this.getY()/distance(this));
}
Kann mir einer helfen ?
Ich bekomme eine Komische ausgabe:
Java:
(0.0 0.0)
(0.0 0.0)
(Infinity Infinity)
Bin euch sehr dankbar, wenn mir jemand sagt was ich falsch mache .
Distanz geht super und der einheitsvektor wird doch x / distanz berechnet .
und y / distanze ...beide werte ergeben wieder korrdinaten und davon die länge ist betrag 1.
Java:
public Vertex normalize(){
double a = distance(this);
System.out.println(a);
double b = this.x / a;
System.out.println(b);
double c = this.y / a;
System.out.println(c);
return new Vertex(this.x/this.distance(this),this.y/this.distance(this));
}
Hier will das schhon nicht , danke für eure hilfe.
Aufruf mit:
Java:
Vertex v1 = new Vertex(17,4);
Vertex v2 = new Vertex(42,23);
Vertex v3 = new Vertex(0,0);
Vertex v4 = new Vertex(42,23);
Vertex v5 = new Vertex(-4,1);
Vertex v6 = new Vertex(2,4);
System.out.println(v1.add(v2));
System.out.println(v1);
System.out.println("####");
System.out.println(v1);
v1.addMod(v2);
System.out.println(v2);
System.out.println("****");
System.out.println(v1.normalize());
System.out.println("####");