Hallo Forum
Ich habe ein Programm geschrieben, welches eine beliebige Anzahl Punkte einliest (also X,Y,Z) Koordinaten und in einem Array speichert. Weiterhin kann man im Programm eine maximale Steigung angeben welche nicht überschritten werden soll und in einem anderen SChritt, wird jeweils die Steigung zwischen den Punkten berechnet, also Steigung zwischen Punkt 1 und Punkt 2...dann Steigung zwischen Punkt 2 und Punkt 3 dann zwischen 3 und 4 etc. Nun möchte ich, dass wenn die Steigung zwischen 2 Punkten über dem eingegeben Grenzwert liegt der zweite Punkt gelöscht wird also mit allen 3 Koordinaten und die steigung dann zum nächsten Punkt berechnet wird, das Programm also nur die Steigungen berechnet, die unter dem Grenzwert liegen.
Ich hoffe ihr versteht was ich meine. habt ihr eine Idee wie man sowas machen könnte ?
Hier der Code
Ich habe ein Programm geschrieben, welches eine beliebige Anzahl Punkte einliest (also X,Y,Z) Koordinaten und in einem Array speichert. Weiterhin kann man im Programm eine maximale Steigung angeben welche nicht überschritten werden soll und in einem anderen SChritt, wird jeweils die Steigung zwischen den Punkten berechnet, also Steigung zwischen Punkt 1 und Punkt 2...dann Steigung zwischen Punkt 2 und Punkt 3 dann zwischen 3 und 4 etc. Nun möchte ich, dass wenn die Steigung zwischen 2 Punkten über dem eingegeben Grenzwert liegt der zweite Punkt gelöscht wird also mit allen 3 Koordinaten und die steigung dann zum nächsten Punkt berechnet wird, das Programm also nur die Steigungen berechnet, die unter dem Grenzwert liegen.
Ich hoffe ihr versteht was ich meine. habt ihr eine Idee wie man sowas machen könnte ?
Hier der Code
Java:
import java.lang.Math;
public class Projekt_test {
public static void main(String[] args) {
StdOut.print("Gib die maximale Steigung ein");
double maxSt = StdIn.readDouble();
StdOut.print("Gib die Anzahl von Punkten:");
double x,y,z;
int n = StdIn.readInt();
double [][] a= new double [n][3];
for (int i = 0; i < n; i++) {
StdOut.print("Gib die ");
StdOut.print(i+1);
StdOut.println(". X-Koordinate" );
x= StdIn.readDouble();
a[i][0]= x;
StdOut.print("Gib die ");
StdOut.print(i+1);
StdOut.println(". Y-Koordinate" );
y= StdIn.readDouble();
a[i][1]= y;
StdOut.print("Gib die ");
StdOut.print(i+1);
StdOut.println(". Z-Koordinate" );
z= StdIn.readDouble();
a[i][2]= z;
}
double [] l= new double [n-1]; // Hier werden Subklassen erstellt
double [] h= new double [n-1];
double [] g= new double [n-1];
double [] steigung= new double [n-1];
for (int i= 0;i<n-1;i++){ // Arraystartwert bei soll abbrechen wenn i um eine Einheit kleiner ist als die Anzahl Arrayglieder
l[i]= Math.sqrt((Math.pow(a[i+1][0]-a[i][0],2.0)+Math.pow(a[i+1][1]-a[i][1],2.0))+Math.pow(a[i+1][2]-a[i][2],2.0));
g[i]= Math.sqrt((Math.pow(a[i+1][0]-a[i][0],2.0)+Math.pow(a[i+1][1]-a[i][1],2.0)));
h[i]=a[i+1][2]-a[i][2];
steigung[i] = (h[i]/g[i])*100;
}
double xyz=0;
for(int i=0;i<n-1;i++){
if (steigung[i]>maxSt){
// Hier möchte ich dass das Programm den Arrayeintrag löscht und das Array auch kürzt so dass nicht eine Lücke entsteht
}
}
}
[\JAVA]
Gruss
Except