# in Java Koordinaten transformieren



## ala (27. November 2009)

Hallo, 
ich bin neu in diesem Forum und habe ein grosses Problem mit Programmieren mit Java. Ich weiß zwar wie der Aufbau ist, aber wenn ich ein Programm schreiben soll, dann scheitere total. 
Ich muss jetzt eine gegebene Leitungsstrang, deren x, y und Winkel bekannt sind, so transformieren, dass ich den Anfangspunkt und Endpunkt erhalte und die Länge der beiden Punkte berechne.Es sind noch zwei extra Punkte gegeben, um zu vergleichen und überprüfen, ob die länge diese beiden Punkte in der Länge der Leitungsstrang passt. Falls jemand mir helfen kann, bitte Bescheid geben, ich werde auch schreiben, was ich bis jetzt gemacht habe.


----------



## kabel2 (28. November 2009)

Poste lieber gleich Deine Versuche.
Ansonsten solltest Du noch die Aufgabenstellung präzisieren, ich werde daraus nicht schlau.
Das sieht momentan nach einem Mischmasch aus Polar- und kartesischen Koordinaten aus.


----------



## ala (28. November 2009)

erstmal danke fürs antworten. Also die Aufgabestellung habe ich als Anhang zu geschickt. Ich zeige zusätzlich was für Klassen ich bereits geschrieben habe. 

```
package berechnung;

public interface Ileitungsstrang {
	public double laenge();		
    }


package berechnung;

public class ElementL extends Punkt implements Ileitungsstrang {
     int alph;
 public ElementL(double[] x, double[] y, int alph){
	 super(x,y);
 }
 public double laenge(){
	 double lm;
	int i = 0;
	int j = 0;
	return lm = x[i]+y[j];
 }
}



               package berechnung;

public class ElementR extends Punkt implements Ileitungsstrang{
    int alph;
  public ElementR(double[] x, double[] y, int alph){
	  super(x,y);
 }
public double laenge(){
	double lm;
	int i = 0;
	int j = 0;
	return lm= x[i]+y[j];
}
}


                                                                                                                                                                                       package berechnung;

public class ElementHL extends Punkt implements Ileitungsstrang{
	int alph;
	public ElementHL(double[] x, double[] y, int alph){
		super(x,y);
	}

	public double laenge(){
		double lm;
		int j = 0;
		int i = 0;
		return lm= x[i]+(Math.sqrt(2)-1)*y[j];
	}
}


                          package berechnung;

public class Punkt {
	double [] x;
	double []y;
	public Punkt(double[] x, double[] y){
		this.x= x;
		this.y=y;
		}
}
```


----------



## Vereth (30. November 2009)

Mathematisch ist es folgendermaßen (Stichwort Trigonometrie):
Seien x0 und y0 die Koordinaten des Startpunktes, l die Leitungslänge und w der Winkel, dann ist die Formel für den Endpunkt x1, y1:
x1 = x0+l*cos(w);
y1 = y1+l*sin(w);
Seien x0,y0 und x1,y1 als Koordinaten zweier Punkte gegeben, dann ist die Entfernung l berechenbar durch die Formel:
l² = (x1-x0)²+(y1-y0)² bzw.
l = SQRT((x1-x0)²+(y1-y0)²)

PS: Ein Punkt hat keine Länge.


----------



## Johannes7146 (30. November 2009)

Vereth hat gesagt.:


> PS: Ein Punkt hat keine Länge.



Daran habe ich auch sofort gedacht als ich den einleitungspost gelesen habe ^^

Aber nochmal zum Verständniss...

GEGEBEN:
Du hast P1 mit x1 und y1
und du hast P2 mit x2 und y2 ... richtig?

GESUCHT:
Und gescuht ist der Abstand zwischen P1 und P2

LÖSUNG:

```
package de.tutorials.johannes7146;
/**
 * 
 * @author Kleeschulte
 * @since 30.11.2009
 */
public class AbstandPunkte {
    
    public static void main(String[] args) {
        
        //Instanz der Klasse anlegen
        AbstandPunkte ap = new AbstandPunkte();
        
        //Beispielrechnung für einen Punkte mit P1 (0|0) und P2 (4|4)
        System.out.println(ap.getAbstand(0, 0, 4, 4));
    }
    /**
     * Berechnet den Abstand von 2 Punkte
     * @param x1 X-Koordinate von P1
     * @param y1 Y-Koordinate von P1
     * @param x2 X-Koordinate von P2
     * @param y2 Y-Koordinate von P2
     * @return 
     */
    public Double getAbstand(int x1, int y1, int x2, int y2) {
        return Math.sqrt((y1 - y2) * (y1 - y2) + (x1 - x2) * (x1 - x2));
    }
}
```

Ausgabe:

```
5.656854249492381
```


----------

