Ich erstelle einen Bildfilter, der einen Wabeneffekt durch das Finden der Durchschnitte von Gruppen von Sechsecken erzeugt. Dieser Code wird ein Gitter aus Sechsecken für jede gegebene Größe erzeugen, und wird schließlich auf die Größe der Leinwand beschränkt:bestimmen, ob ein bestimmtes Pixel innerhalb einer Form Verarbeitung ist
float unitSize = 20;
float eqTriH = 0.8660254;
int cellsX;
int cellsY;
void setup() {
size(700, 700);
cellsX = int(width/(unitSize*3));
cellsY = int(height/(unitSize*eqTriH*2+eqTriH));
smooth();
}
void draw() {
for (int i = 0; i < cellsX; i++) {
for (int j = 0; j < cellsY; j++) {
beginShape();
for (int k = 0; k < 6; k++) vertex(unitSize+i*unitSize*3+cos(TWO_PI/6*k)*unitSize, unitSize*eqTriH+j*unitSize*2*eqTriH+sin(TWO_PI/6*k)*unitSize);
endShape(CLOSE);
beginShape();
for (int k = 0; k < 6; k++) vertex(unitSize*2.5+i*unitSize*3+cos(TWO_PI/6*k)*unitSize, unitSize*eqTriH*2+j*unitSize*2*eqTriH+sin(TWO_PI/6*k)*unitSize);
endShape(CLOSE);
}
}
}
Das funktioniert gut, aber ich kann nicht herausfinden, wie man für jeden angefangenen Sechseck, das gezeichnet wird, erhalten eine Anordnung von Pixelpositionen innerhalb jedes Sechsecks.
Wenn diese Frage zu vage ist, lassen Sie es mich bitte wissen, damit ich spezifischer werden kann.
EDIT: wenn ich sage, ich möchte feststellen, ob ein Pixel in der Form ist, ich meine, sobald ich das tun kann, werde ich durchschleifen, DANN ein Array erstellen.
Ist Ihr Endziel, um herauszufinden, ob ein Punkt innerhalb eines Sechsecks ist? Warum müssen Sie die tatsächlichen Pixel überlappen? Was machst du mit ihnen? –
@KevinWorkman Das Endziel wäre, die durchschnittliche Farbe von allem innerhalb eines Polygons zu finden. –