Hallo Community,
könnte mir jemand sagen wie man die Variablen einschränkt nur mit Array oder geht das auch anderst? Was muss ich ändern damit die einzelne Methoden Verschiebung, Dreickecksflächenberechnung und Berechnung der Richtungswinkel funktionieren? Bitte um Antwort. Vielen Dank.
könnte mir jemand sagen wie man die Variablen einschränkt nur mit Array oder geht das auch anderst? Was muss ich ändern damit die einzelne Methoden Verschiebung, Dreickecksflächenberechnung und Berechnung der Richtungswinkel funktionieren? Bitte um Antwort. Vielen Dank.
Java:
package uebung; //Paketname
public class Punkt { //Klassenname
private int[] x = new int[100]; //Array x vom Typ int wird erzeugt es darf 0-1000 Elemente enthalten
private int[] y = new int[100]; //Array y vom Typ int wird erzeugt es darf 0-1000 Elemente enthalten
private String bezeichnung; //Variable bezeichnung vom typ String wird erzeugt
private static int anzahl; //Variable anzahlObjekte vom Typ int wird erzeugt
public Punkt() { //leere Konstruktor ohne Parameter +++++++++
anzahl = anzahl + 1; //anzahl wird um 1 erhöht!
}
public Punkt(int x[], int y[], String b) { //Konstruktor mit x[] , y[] und String b als Paramter+++++++++
this.x = x; //x wird dem x zugewiesen
this.y = y; //y wird dem y zugewiesen
this.bezeichnung = b; //b wird dem bezeichnung zugewiesen
}
public String toString() { //Methode toString mit den Rückgabewert vom String+++++++++
return "Punkt x=" + this.x + ", Punkt y=" + this.y + ", " + this.bezeichnung; //mit return werden die Eigenschaften ausgegeben!
}
public double berechneAbstand(Punkt p) { //Methode berechneAbstand mit p vom Typ Punkt als Parameter
double lc = Math.sqrt(Math.pow((p.x - this.x), 2) + Math.pow((p.y - this.y), 2));
return lc;
}
// BERECHNUNG DES RICHTUNGSWINKELS 2er PUNKTE IN ALTGRAD
public double richt(Punkt p) {
double dt = 0;
double ddx = p.x - this.x;
double ddy = p.y - this.y;
if (ddy != 0) {
dt = Math.atan(ddx / ddy);
// dy ungleich 0, Berechnung Richtungswinkel t
if (ddy < 0) {
dt = dt + Math.PI; // +Pi wenn Ay entgegengesetzt
}
} else {
if (ddx != 0) {
if (ddx > 0) {
dt = 1.0 / 2 * Math.PI;
} else {
dt = 3.0 / 2 * Math.PI; //
}
} else {
System.out.println("keine Antwort unter dieser Nummer!");
}
// dx=0 dy=0
}
dt = dt * 180 / Math.PI;
return dt;
}
// Berechnung der Dreiecksfläche
public double dreiecksflaeche(Punkt p1, Punkt p2) {
double a = Math.sqrt(Math.pow((p1.x - this.x), 2) + Math.pow((p1.y - this.y), 2));
double b = Math.sqrt(Math.pow((p2.x - p1.x), 2) + Math.pow((p2.y - p1.y), 2));
double c = Math.sqrt(Math.pow((p2.x - this.x), 2) + Math.pow((p2.y - this.y), 2));
double s = (a + b + c) / 2;
double f = Math.sqrt(s * (s - a) * (s - b) * (s - c));
return f;
}
// Ausgabe der anzahl Instanzen+++++++++
public static int getAnzahl() {
return anzahl; //Variable anzahl wird zurückgelifert
}
//boolscher Vergleich auf identische Koordinaten +++++++++
public boolean vergleich1(Punkt p) {
boolean result = true; //Variable result vom Typ boolean wird erzeugt, true wird dem result zugewiesen
if ((this.x != p.x) || (this.y != p.y))
result = false; //result wird als false zurückgelifert!
return result; //result wird zurückgelifert, also in diesem Fall true!
}
//boolescher Prüfung der Wertgleichheit zweier Instanzen in allen Attributen+++++++++
boolean vergleich2(Punkt p) {
boolean result = true; //Variable vergleich vom Typ boolean wird erzeugt
if ((this.x != p.x) || (this.y != p.y) || (this.bezeichnung.equals(p.bezeichnung))) { //Alle Attributen 2er Objekte werden verglichen
result = false; //result wird als false zurückgeliefert!
}
return result; // result wird zurückgelifert, also true in diesem Fall!
}
//Verschiebung eines Punktes
public void move(int dx, int dy {
this.x = this.x + dx; //x wird um dx verschoben!
this.y = this.y + dy; // y wird um dy verschoben!
}
}