Überprüfung 2er Geraden in Java

nebukatneko23

Grünschnabel
Hallo, muss in meiner Schule ein Programm entwickeln das testet ob 2 Geraden in einem 3 dimensionalen Raum sich parallel schneiden, ob sie windschief sind oder kolinear. Das problem ist das ich gerade erst Java kennen gelernt habe und in Mathe auch noch nicht soweit bin mit der Vektorberechnung. Versuche mir das gerade aus Büchern anzueignen. Wäre aber echt froh wenn jemand das schonmal gemacht hat und mir das am Quellcode zeigen kann. Es reicht schon, wenn in der Konsole ausgegeben wird, ob sie sich nun schneiden etc.

Gruß und Dank schonmal
 
Hallo,

verrat uns doch einfach mal, wie weit du selber schon gekommen bist. Ist dir der mathematische Hintergrund inzwischen klar? Wenn ja, wo hast du konkret Probleme bei der Umsetzung in Java?

Grüße,
Matthias
 
Meine Eingabe

package vectorcalculation
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

import vektor.Gerade;

public class Eingabe {

private static double x;
private static double y;
private static double z;

public static double getX() {
return x;
}

public static void setX(double x) {
Eingabe.x = x;
}

public static double getY() {
return y;
}

public static void setY(double y) {
Eingabe.y = y;
}

public static double getZ() {
return z;
}

public static void setZ(double z) {
Eingabe.z = z;
}

public static void Eingabe(){
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));

System.out.print("Gib einen Stuetzvektor ein ( 2; 34; -5) : ");
String[] s1 = null;
try {
s1 = buffer.readLine().split(";");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

setX(Double.parseDouble(s1[0]));
setY(Double.parseDouble(s1[1]));
setZ(Double.parseDouble(s1[2]));

System.out.println("\t"+getX()+"\nsvek=\t"+getY()+"\n\t"+getZ());
}

public static void main(String[] args){
Eingabe();
}
}
 
Der mathematische Hintergrund ist mir nun klar. Hab aber probleme bei der Umsetzung in Java. Die 1. Prüfung, ob die 2 Geraden Kollinear sind, ist relativ einfach. Es werden ja lediglich die 2 Richtungsvektoren überprüft. Wenn sie gleich sind, besteht eine Parallelität. Andernfalls nicht. Um Schnittpunkt oder ob sie Windschief sind in Java umzusetzen ist da schon was schwieriger.


Gruß
 
Die 1. Prüfung, ob die 2 Geraden Kollinear sind, ist relativ einfach. Es werden ja lediglich die 2 Richtungsvektoren überprüft. Wenn sie gleich sind, besteht eine Parallelität. Andernfalls nicht.
Die Richtungsvektoren müssen nicht gleich sein. Es reicht auch schon, wenn sie linear abhängig sind (Vielfache voneinander).

Um Schnittpunkt oder ob sie Windschief sind in Java umzusetzen ist da schon was schwieriger.
Überleg dir dazu zunächst, wie du den Schnittpunkt zweier Geraden auf dem Papier berechnest. Die Berechnung in Java erfolgt analog, wobei ggf. man ein paar Sonderfälle beachten muss (Division durch 0 etc.).

Grüße,
Matthias
 
Zurück