Ich versuche herauszufinden, wie Indizes zu einer Form hinzugefügt werden, die bereits alle Scheitelpunkte besitzt. Ich kann durch die Scheitelpunkte sehen, dass ich sie alle habe, wo ich sie brauche, aber ich habe ein merkwürdiges Artefakt, das dadurch verursacht wird, dass die Indizes nicht richtig hinzugefügt werden. Ich bin mir jedoch nicht sicher, wie ich sie richtig hinzufügen soll.Hinzufügen von Indizes zu einem Netz
Surface::Surface()
{
int size = 200;
ofPoint p1(0, 0, 0), p2(0, 0, size), p3(size, 0, size), p4(200, 0, 0);
s1 = new Curve(p1, p2);
s2 = new Curve(p2, p3);
s3 = new Curve(p4, p3);
s4 = new Curve(p1, p4);
for(double i = 0; i <= size; i++){
for(double j = 0; j <= size; j++){
mesh.addVertex(getPoint(i, j));
}
}
int width = size, height = size;
for (int y = 0; y<=height; y++){
for (int x=0; x<=width; x++){
mesh.addIndex(x+y*width);
mesh.addIndex((x+1)+y*width);
mesh.addIndex(x+(y+1)*width);
mesh.addIndex((x+1)+y*width);
mesh.addIndex((x+1)+(y+1)*width);
mesh.addIndex(x+(y+1)*width);
}
}
}
Was Eckpunkte zeichnen gibt:
Aber die Indizes verbinden zu viele Punkte, und ich bin nicht sicher, welche davon, wie der Indizes verbunden werden soll. Zeichnen des Drahtmodell:
Vielleicht dieses Problem ist die richtige zu konkaven Formen? Jeder scheint für mehr oder weniger die gleiche Sache zu tun, wenn sie wollen Indizes zu einem Netz hinzuzufügen
Es macht jetzt mehr Sinn, aber es fügt immer noch zu viele Indizes hinzu. Es ist wie für die Zeilen, die die Punkte 1 bis 2 zu 3 bis 4 tun sollten, fügt eine letzte Zeile von 4 zu 1 hinzu. Ich habe versucht, die Anzahl der Zeiten für jede Schleife zu verringern, aber es scheint nicht zu helfen. Ohne Änderung, mit Ihrem Code sieht es so aus: http://imgur.com/N8WIRIN – Axel
Ja sorry, ich habe die Antwort bearbeitet. Sie sollten nur die Bedingung Ihrer Schleife zu
Ich dachte mir so etwas aus und ich habe schon etwas Ähnliches wie du bearbeitet, bevor du es getan hast. Und das Ergebnis ist das gleiche. Ich glaube jedoch, dass ich die Indizes nicht in der Reihenfolge hinzufüge, in der ich denke, dass ich sie hinzufüge. Zum Beispiel, wenn ich meine for-Schleifen zu 'y
Axel