Liebe Community,
ich brauche regelmäßig für GIS Tätigkeiten ein regelmäßiges Punktmaschennetz, weswegen ich mich jetzt daran gewagt habe Java ein wenig zu studieren und diese Aufgabe umzusetzen.
Ich bin auch schon weit gekommen nur komme ich jetzt nicht mehr weiter.
Ausgangsbasis:
Ich brauche ein Programm dem ich drei Punkte eines großen Rechtecks angebe (ABC), wobei B der Eckpunkt sein soll.
Dann will ich die Strecken (B nach A) und (B nach C) in regelmäßige Stücke unterteilen, so dass ich ein Raster erhalte.
Die Knotenpunkte des Rasters möchte ich dann als Liste mit xy Koordinaten ausgeben lassen.
Mein bisheriger Ansatz sieht wie untenstehend aus.
Ich habe eine Klasse Punkt mit der wichtigen Methode vektorpart die mir den Vektor zum benachbarten Knotenpunkt auf den
beiden Laufrichtungen BA oder BC liefert und eine Methode mit der ich einen Punkt mit dem jeweiligen Vektor addieren kann (addvektor).
Ich habe dann in der main Klasse Draw, erstmal eine Zeile in ba-Richtung manuell berrechnet und dann diese Prozedur für die Zeile mit einer Forschleife automatisiert. Jetzt möchte ich die einzelnen Knotenpunkte auf der Geraden BA als Startpunkte für die Addition des Teilvektors in BC Richtung nehmen, um somit das ganze Netz aufzubauen. Aber hier hänge ich leider und komme nicht weiter.
Ich hatte versucht ein 2dimensionales Array aufzubauen, aber kriege nur Fehlermeldungen.
Ich hoffe meine Anfrage stößt auf Interesse und Jemand kann mir hier helfen.
Viele liebe Grüße
Confugere
//Instanzvariablen
public class punkt {
private double x;
private double y;
// lehrer Konstruktor
public punkt() {
this.x = 0;
this.y = 0;
}
public punkt(double x, double y) {
this.x = x;
this.y = y;
}
public double getx() {
return this.x;
}
public double gety() {
return this.y;
}
public punkt vektor(punkt other) {
double deltax = other.x - this.x;
double deltay = other.y - this.y;
punkt vektor = new punkt(deltax, deltay);
return vektor;
}
public punkt addvektor(punkt other) {
double addx = other.x + this.x;
double addy = other.y + this.y;
punkt add = new punkt(addx, addy);
return add;
}
public punkt vektorpart(punkt other, int div) {
double deltax = other.x - this.x;
double deltay = other.y - this.y;
double partx = deltax / div;
double party = deltay / div;
punkt vektorpart = new punkt(partx, party);
return vektorpart;
}
public void printPunkt() {
double a = getx();
double b = gety();
System.out.print(a);
System.out.print(";");
System.out.println(b);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//Punkte erzeugen
punkt a = new punkt(3,0);
punkt b = new punkt(0,0);//Eckpunkt
punkt c = new punkt(0,4);
//vektor b->a und b->c
punkt vec_ba = b.vektor(a);
punkt vec_bc = b.vektor(c);
//Teilvektoren ba = Zeilen, bc = Spalten
punkt vec_ba_part = b.vektorpart(a,3);
punkt vec_bc_part = b.vektorpart(c,4);
//Punkte a1,a2,a3
punkt a1 = b.addvektor(vec_ba_part);
punkt a2 = a1.addvektor(vec_ba_part);
punkt a3 = a2.addvektor(vec_ba_part);
//print
System.out.println("Vektoren");
vec_ba.printPunkt();
vec_bc.printPunkt();
System.out.println("Teilvektoren");
vec_ba_part.printPunkt();
vec_bc_part.printPunkt();
System.out.println("neue Punkte");
a1.printPunkt();
a2.printPunkt();
a3.printPunkt();
System.out.println("Automatisierung Zeilen");
//Automatisierung
int zeilen = 3;
int spalten = 4;
punkt[] pArray = new punkt[zeilen+1];
pArray[0] = b;
for(int i=1; i<pArray.length; i++){
//
pArray** = pArray[i-1].addvektor(vec_ba_part);
}
}
}```