Hallo,
ich möchte ein eindimensionales float Array beliebiger Größe folgendermaßen füllen:
Man kann nach einiger Betrachtung erkennen, dass es gewisse Regelmäßigkeiten gibt.
Zum einen sind jeweils paarweise die ersten beiden Zeilenwerte in halben Abständen stets gleich groß.
Zum anderen wiederholt sich -scl in der zweiten Spalte stets regelmäßig.
Das ganze dient dem Zweck letzten Endes ein 3 dimensionales Grid zu erstellen und ich möchte erstmal NICHT davon abkommen, da es via harcoding (also alle einträge von Hand - ein HAUFEN Arbeit) funktioniert. Und das meine ich mit Transformationen, Camera etc. .
Mir geht es jetzt nur darum mit meiner gefundenen Regelmäßigkeit das Array so zu füllen, dass mir die richtigen Werte mit einfachen Schleifendurchlauf über das Array ausgegeben werden.
Außerdem habe ich sowas noch nie gemacht mein Ansatz bezüglich obiger Daten ist folgender:
ich möchte ein eindimensionales float Array beliebiger Größe folgendermaßen füllen:
Code:
float[] vertices = {
0f, 0f, 0f,//v0
0f, -scl, 0f,//v1
scl/2, 0f, 0f,//v2
scl/2, -scl, 0f,//v3
scl, 0f, 0f,//v4
scl, -scl, 0f,//v5
scl+scl/2, 0f, 0f,//v6
scl+scl/2, -scl, 0f,//v7
scl+scl, 0f, 0f,//v8
scl+scl, -scl, 0f,//v9 28
scl+scl+scl/2, 0f, 0f,//v10
scl+scl+scl/2, -scl, 0f,//v11
Man kann nach einiger Betrachtung erkennen, dass es gewisse Regelmäßigkeiten gibt.
Zum einen sind jeweils paarweise die ersten beiden Zeilenwerte in halben Abständen stets gleich groß.
Zum anderen wiederholt sich -scl in der zweiten Spalte stets regelmäßig.
Das ganze dient dem Zweck letzten Endes ein 3 dimensionales Grid zu erstellen und ich möchte erstmal NICHT davon abkommen, da es via harcoding (also alle einträge von Hand - ein HAUFEN Arbeit) funktioniert. Und das meine ich mit Transformationen, Camera etc. .
Mir geht es jetzt nur darum mit meiner gefundenen Regelmäßigkeit das Array so zu füllen, dass mir die richtigen Werte mit einfachen Schleifendurchlauf über das Array ausgegeben werden.
Außerdem habe ich sowas noch nie gemacht mein Ansatz bezüglich obiger Daten ist folgender:
Java:
int width = 12;
int height = 3;
System.out.println("original");
for(int x = 0;x<vertices.length;x++) {
System.out.print(vertices[x]+" , ");
}
System.out.println();
System.out.println("eindimensional");
float firstcounter = 0; //Die beiden counter nehme ich zu speichern der letzten Werte
float secondcounter = 0;
float[] verticess = new float[width*height];
for(int x = 0;x<width;x++) {
for(int y = 0;y<height;y++) {
if(y==0) {
if(x==0||x==1) {
verticess[y+x*width]=0.0f;
}
else if(x%2==0) {
firstcounter+=scl/2;
verticess[y+x*width]+=(float)(((int)(firstcounter*10)/10.0f));
}
else if(x%2==1) {
secondcounter+=scl/2;
verticess[y+x*width]+=(float)(((int)(secondcounter*10)/10.0f));
}
}
if(y==1) {
if(x%2==1) {
verticess[y+x*width]=-scl;
}
}
if(y==2) {
}
System.out.print(verticess[y+x*width]+" , ");
}
}
for(int x = 0;x<vertices.length;x++) {
System.out.print(vertices[x]+" , ");
}
Zuletzt bearbeitet von einem Moderator: