Dreieck Berechnung Java?

4 Antworten

Die trigonometrischen Funktionen stehen in der Math-Klasse der Java Bibliothek bereit. Darüber kannst Du bspw. Math.sin() oder Math.cos() aufrufen.

Wie Du die Seitenlängen berechnest, werde ich an dieser Stelle aber nicht erklären. Das wird jeder im Schulunterricht gelernt haben.

Woher ich das weiß:Studium / Ausbildung
Rudinatooor 
Fragesteller
 02.12.2018, 14:24

danke für die Antwort. Ich weiß wie man die Seitenlängen berechnet

(B-A / B-C /A-C )

ich muss prüfen ob das Dreieck gleichschenklig / gleichseitig / rechtwinklig ist.

dafür brauch ich die Vektorrechnung.

meine Frage ist, wie ich es in Java ausführen kann.

z.b

int [ ] a = (5, 5, 5) ;

int [ ] b = (3, 4, 6) ;

int [ ] c = (5, 8, 3) ;

aber wie kann ich jetzt nun die Rechnung ausführen in Java ? um die Seitenlänge zu bestimmen z.b ist die Seitenlänge

AB = (5-3/5-4/5-6= wurzel 2²+1²+1²) =4

wie kann man in Java die Zahlen (5,5,5) - (3,4,6) minus rechnen

was muss ich davor und danach setzten damit er es mir berechnet.

danke vielmals

0

Du musst dir eine geeignete Datenstruktur überlegen, um einen Vektor in Java modellieren zu können. Wesentliche Eigenschaft ist, dass ein Vektor drei Komponenten besitzt. Daher kannst du folgende Klasse erstellen:

public class Vector {
  private double x, y, z;

  public Vector(double x, double y, double z) {
    this.x = x;
    this.y = y;
    this.z = z;
  }

  public double getX() {
    return x;
  }

  public double getY() {
    return y;
  }

  public double getZ() {
    return z;
  }
}

Nun benötigst du noch eine Methode zum Addieren zweier Vektoren, wobei dazu die Komponenten addiert werden müssen:

public Vector add(Vector b) {
  return new Vector(
        x + b.getX(),
        y + b.getY(),
        z + b.getZ()
      );
}

Außerdem ist eine Methode zur Berechnung der Länge eines Vektors erforderlich:

public double length() {
  return Math.sqrt(
        Math.pow(x, 2) + 
        Math.pow(y, 2) + 
        Math.pow(z, 2)
      );
}

Dadurch kannst du nun die Längen der Seitenkanten bestimmen:

public static double getSideLength(Vector a, Vector b) {
  return a.add(b).length();
}

Somit ergibt sich folgendes vollständige Codebeispiel:

public class Vector {
  private double x, y, z;

  public Vector(double x, double y, double z) {
    this.x = x;
    this.y = y;
    this.z = z;
  }

  public double getX() {
    return x;
  }

  public double getY() {
    return y;
  }

  public double getZ() {
    return z;
  }

  public Vector add(Vector b) {
    return new Vector(
          x + b.getX(),
          y + b.getY(),
          z + b.getZ()
        );
  }

  public double length() {
    return Math.sqrt(
          Math.pow(x, 2) + 
          Math.pow(y, 2) + 
          Math.pow(z, 2)
        );
  }

  public static double getSideLength(Vector a, Vector b) {
    return a.add(b).length();
  }
}



class Main {
  public static void main(String[] args) {
    Vector a = new Vector(5, 5, 5);
    Vector b = new Vector(3, 4, 6);
    Vector c = new Vector(5, 8, 3);

    System.out.println("|AB| = " + Vector.getSideLength(a, b));
    System.out.println("|BC| = " + Vector.getSideLength(b, c));
    System.out.println("|AC| = " + Vector.getSideLength(a, c));
  }
}

Wenn du nach einer bereits existierenden Lösung suchst, kannst du dir auch mal Vector3d anschauen.

Rudinatooor 
Fragesteller
 04.12.2018, 10:55

danke dir. das hat mir weitergeholfen !

1

Stelle zuerst die mathematische Formel auf, die du benötigst, um die Seitenlängen AB, AC und BC zu berechnen. Danach kannst du dir überlegen, wie du die einzelnen Daten der gegebenen Koordinaten darstellst. Vielleicht via Objekt Koordinate, welches über die Attribute x, y und z verfügt oder über ein Array.

Der Rest ist nur noch Tipparbeit. Objekte / Arrays erstellen und auf die jeweiligen Attribute / den jeweiligen Index zugreifen und diese in die Formel setzen.

Genau, wie man es auf dem Papier tut.

Hinweis: Math.sqrt()