(Fast) Farben automatisch generieren

Am 8. MÀrz hatte ich eine Implementierung des automatisierten Zeichnens von OberflÀchen mit Splines - warum nicht einen Artikel mit Farben schreiben?

Es stellte sich ungefĂ€hr so ​​heraus:



Es wird mehr unter dem Schnitt geben, kĂŒmmere dich um den Verkehr.

Der Algorithmus, kubische Kurven macht beschrieben wurde zuvor . Hier werden wir versuchen, es anzuwenden, um etwas Blumenartiges zu erhalten. Das einzige Problem ist die Auswahl der Eingabedaten.
Die Eingabedaten sind eine Reihe von Punkten mit Koordinaten im dreidimensionalen Raum und eine Reihe von Verbindungen zwischen ihnen, so dass dieses Design topologisch einer Box wie dieser entsprechen sollte:



(am Ende sollte es so sein :)



Damit die kubischen OberflÀchen, wenn sie auf den Kern gespannt werden, wie eine Blume aussehen Es ist notwendig, die Punkte symmetrisch auf den Kreisen anzuordnen, die um die Mitte der Blume herum umschrieben sind. Um dieses Problem zu lösen, wurde eine Variation der "Breitensuche" angewendet.

Allen Gewichtspunkten zuordnen. Zuerst weisen wir den Extrempunkten die Gewichte 0 und 1 zu (zwei identische Gewichte sollten nicht in der NĂ€he sein). Dies sind die RĂ€nder der „BlĂŒtenblĂ€tter“, 0 - die fernen, 1 - die nahen (die „BlĂŒtenblĂ€tter“ stehen in AnfĂŒhrungszeichen, da es keine Unterteilung in BlĂŒtenblĂ€tter als solche gibt). Wiegen Sie weiter, indem Sie ungewichteten Nachbarn mit dem Gewicht n das Gewicht n + 2 zuweisen.

Gewichtete Box: WĂ€hlen Sie als



nĂ€chstes zufĂ€llig den Abstand r von der Mitte der Blume fĂŒr jede Gewichtsklasse aus.
Die Logik hier lautet wie folgt: Je grĂ¶ĂŸer das Gewicht, desto nĂ€her muss der Punkt in die Mitte verschoben werden, und Ungleichungen sollten erfĂŒllt sein:

r0>r2>r4>...>r2n;;  r1>r3>...>r2n+1;;  r0>r1


Dabei ist r der Abstand von der Mitte der Blume zu Punkten mit dem entsprechenden Gewicht. Gerade Gewichte sind fĂŒr den zentralen Teil des „BlĂŒtenblatts“ verantwortlich, ungerade Gewichte sind fĂŒr die Kanten des „BlĂŒtenblatts“ verantwortlich.

Um Punkte auf Kreisen (und nicht auf Kugeln) anzuordnen, mĂŒssen wir auch zufĂ€llig Z-Koordinaten so auswĂ€hlen, dass z_n <r_n ist (wenn der Mittelpunkt der Blume auf der Koordinate Null liegt).



Im nĂ€chsten Schritt mĂŒssen wir die Winkel fĂŒr die Position der Punkte auf dem Kreis kennen:

emitlund mn- -zuÜberlundhemittbeimÜber tÜberhezu mit beimemitÜberm n,tÜber Î±n=2⋅π/.mn


und dann die Koordinaten fĂŒr den i-ten Gewichtspunkt n, wenn er gerade ist:

xich=rn2- -zn2⋅cÖs(ichαn)


yich=rn2- -zn2⋅sichn(ichαn)


fĂŒr ungerade:

xich=rn2- -zn2⋅cÖs(ichαn+αn/.2)


yich=rn2- -zn2⋅sichn(ichαn+αn/.2)


Außerdem ist die Reihenfolge, in der wir die Punkte aufnehmen, wichtig - sie mĂŒssen „Nachbarn“ sein.



Nach all diesen Manipulationen wird eine sternförmige Struktur erhalten, an der Keile gezogen werden können.

(Draufsicht, Isometrie, Splines)





Solche KelchblÀtter können auf 100.500 randomisiert werden, aber um geeignete auszuwÀhlen, mehrere Blumen zu machen, Farben und Kernparameter manuell besser auszuwÀhlen, erfolgt die Erzeugung daher halbautomatisch.

(Ansicht der Montagesoftware)













Herzlichen GlĂŒckwunsch zum Internationalen Frauentag an die schöne HĂ€lfte der Habrasociety! Ich hoffe du warst schön.

All Articles