Transkripte
1. Farb- und Einführungsvideo: Hallo allerseits, Mein Name ist Hit you und das ist Genitiv Farbe und Textur. Als ich zum ersten Mal generative Kunst lernte, war
ich überglücklich von den Möglichkeiten prozeduraler Kreationen. Aber erst als ich anfing, auf
Out-of-the-Box-Ideen zu drängen , begann ich, einen Stil zu entwickeln. Immer wenn ich neue Techniken erlerne, gehe
ich zu alten Skizzen zurück und setze sie um, um herauszufinden, wie ich die beiden Projekte zusammenführen kann. In diesem Kurs werden wir besprechen, wie Sie mit
einfach zu implementierenden Texturierungs- und Färbemethoden
Tiefe und Halbrealismus in Ihrer Arbeit liefern können mit
einfach zu implementierenden Texturierungs- und Färbemethoden
Tiefe und Halbrealismus in Ihrer Arbeit . Ich könnte acht verschiedene Lektionen darüber, wie
Sie Versuche schreiben und Ihr generatives Design einfärben können. Und ein abschließendes Projekt,
das die Kombination mehrerer Prozeduren in einem endgültigen Kunstwerk zeigt . In vier der Lektionen untersuchen
wir vier Möglichkeiten, Ihrer Arbeit Textur zu verleihen, von handgezeichneten Formen bis hin zum Hinzufügen einfacher grafischer Dropdown-Schatten. Und schließlich keine diskontierte, perfekt randomisierte Farbpalette. Aber in diesem Kurs zeige ich Ihnen
Maltechniken, die Ihre Arbeit auf die nächste Stufe heben Wir erstellen für jede Methode ein komplettes Kunstwerk von Grund auf neu, das
zeigt, wie ich daran gedacht hätte, sie einzusetzen und Ihnen zu geben Ideen für die Anwendung. Ich denke, das reicht für eine Einführung. Also lasst uns anfangen.
2. Textur 01: Umerziehung: In den ersten beiden Lektionen für die Textur Nummer eins wollte
ich darüber sprechen, dass
die primitiven Formen die nativen Formen in der Verarbeitung sind, wie Kreise und Rechtecke, insbesondere Kreise und Rechtecke. In dieser ersten Lektion sprechen wir also über Kreise und sprechen dann in der nächsten Lektion über das Neuerstellen von Rechtecken. Für diesen werden
wir also eine neue Klasse schaffen, und diese Klasse wird der Kreis sein. Also um anzufangen, werden wir es einfach tun, wir nennen es Blob. Jetzt definieren wir in dieser Klasse alle Eigenschaften, die
wir benötigen, um einen Kreis mit Punkten zu erstellen. Wenn Sie darüber nachdenken, hat
ein Kreis einen Mittelpunkt und dann hat er einen Radius. Und später die Punkte, die den Umfang des Kreises erzeugen werden. Für die Punkte, die den Umfang erzeugen, wird
dies eine Reihe von Floats sein, die Positionen von x und y sein werden.
Und dann brauchen wir auch die Auflösung
, um die Anzahl der Punkte zu kennen, die wir benötigen, um diesen Kreis zu erstellen. Dafür erstelle ich einfach eine ganze Zahl und nenne sie einfach Raz zur Lösung. Und wir werden auch Center x und center y für die Mitte des Kreises benötigen. Und dann sagten wir auch, dass wir einen Radius brauchen werden. Also lasst uns das nicht vergessen. Okay, und um zu beginnen, bauen
wir hier ein Reservoir. Und ich werde initialisieren, dass diese Variablen diese Eigenschaften im Konstruktor sind. Also mache ich es und Rotweine. Und dann möchte ich auch die Mittelachse und das zentrale Warum später definieren. Also werde ich sie hier nicht finden. Center x wird diesem Zentrum x entsprechen und dann dasselbe zentralisieren. Und jetzt initialisieren wir x und y. Diese werden rote Länge haben. Weil x und y, ich werde nur die Positionen sein und die Menge von ihnen wird die Auflösung dieses Kreises sein. Und für den Radius beginne
ich mit Zufallswerten. Ich bleibe eigentlich bei Zufallswerten. Zeigen Sie mir, dass es von 10 bis 50 darin schwebt, bevor ich mit den Punkten x und y beginne, den Kreis zu erstellen oder anzuzeigen .
Ich muss die Werte für x und y initialisieren. Also werde ich eine Init-Funktion erstellen. Und in dieser Funktion wird eine Schleife haben. Und das wird natürlich weniger sein als die Entschließung. Und dann werden wir normal um eins erhöhen. Jetzt werden wir hier die Punkte erstellen. Wenn du mein Instagram oder YouTube besucht
hast, hättest du gesehen, wie du Punkte rund um den Kreis erstellen kannst. Oder wenn du meinen Polar Grid-Kurs absolviert hast. Aber im Allgemeinen werden wir diese Punkte um
den Kreis herum erzeugen , indem wir Kosinus und Sinus verwenden. Also werden wir diese Funktionen verwenden, um Punkte um den Kreis
zu zeichnen, indem die Winkel der Punkte innerhalb dieses Kreises verwenden. Während wir das durchmachen, können
Sie verstehen, wie das funktioniert. Also für den ersten wird der Akzent sein, den ich positioniere. Und dafür verwenden wir Kosinus den Winkel. Und wir werden den Winkel in ein bisschen schaffen. Und dann multiplizieren wir es mit dem Radius. Wir erzeugen im Grunde Punkte auf Dreiecken und
drehen uns dann basierend auf dem Winkel dieser Dreiecke, wodurch der Kreis entsteht. Deshalb ist die Entschließung hier wichtig. Denn je höher die Auflösung, desto kreisförmiger wird der Blob aussehen, und je weniger diese Punkte wo sind, desto kleiner der Auflösungswert, dann werden Sie anfangen, mehr von
einem zu sehen Sechseckform oder eine Diamantform oder sogar ein Dreieck, wenn Sie auf drei gehen. Und das dreht sich mit Werten von negativ eins zu eins, weil Kosinus des Winkels, welcher Winkel mir Werte von negativ eins zu eins geben wird. Also muss ich es mit dem Radius multiplizieren, um es zu
verdrängen , je nachdem, wie groß der Kreis sein soll. Im Moment möchte ich, dass der Kreis ein Zufallsradius ist, ein zufälliger Radius von 10 bis 50. Die Breite oder der Durchmesser dieses Kreises wird also zwischen 20 und 100 liegen. Und dann werden
wir für y Sinus machen. Der Winkel. Multipliziert mit dem Radius. Und um es dann in die Mitte zu schieben, werden
wir haben, denn das wird sich um den Nullpunkt ziehen. Also müssen wir es um Mitte x und Mitte y schieben. Was auch immer ich diese definiere, hier wird das Kreiszentrum am Ende sein. Und dann wird der Winkel innerhalb der for-Schleife definiert. Und ich werde es sein. Also jeder Punkt multipliziert mit dem Winkel jedes dieser Rechtecke innerhalb des Kreises. Nehmen wir an, ich habe sechs Punkte zur Lösung. Dann wird diese Schleife sechsmal iteriert,
was bedeutet, dass KI mit 16 Reihenfolge multipliziert wird, damit sie den 360-Winkel vervollständigt. Aber anfangs wissen wir nicht, wie die Entschließung aussehen wird, also wissen wir nicht, welchen Blickwinkel wir hier einsetzen sollen. Für den Blickwinkel nenne ich es einfach Slice. Und dann berechne ich es hier oben. Und ich nenne es einfach Slice und ich definiere es hier oben. Ich füge es einfach zum Radius hinzu. Wir haben also nicht zu viele Immobilien übereinander. Und hier drüben werde ich 360 durch die Auflösung teilen. 360 ist die Summe der Winkel in einem Kreis und wenn ich sie dann durch
die Auflösung dividiere , gibt mir den Winkel jedes Raums, den der Punkt annehmen wird. Und dann muss ich dies in Bogenmaß umwandeln, da Kosinus und Sinus Radiant benötigen, um zu funktionieren. Und jetzt ist es Zeit für den lustigen Teil, der zeigt und sieht, dass das, was wir geschaffen haben, funktioniert. Um den Kreis zu zeichnen, müssen
wir die X- und Y-Schwimmer durchlaufen. Also werde ich den gleichen Prozess durchlaufen, den wir in der Init-Funktion gemacht haben. Wir werden Co-Vertices verwenden. Der Grund, warum ich eher gebogene Scheitelpunkte als
Scheitelpunkte verwende , liegt darin, dass sie glatter sind. gekrümmte Scheitelpunkt nimmt also zwei Werte wie ein Scheitelpunkt an. Und dann gebe ich es auch x und y und ich. Was Sie über die aktuelle Scheitelpunktfunktion wissen müssen, ist, dass sie aktuelle Scheitelpunktfunktionen
benötigt, um angezeigt zu werden, da der erste der Kontrollpunkt für den ersten sein wird
und dann der zweite der der erste der Kurve. Die dritte wird die zweite der Kurve sein. Und dann wird der letzte Punkt, der vierte
ist, der zweite Kontrollpunkt sein. Im Grunde genommen eine Bezier-Kurve, aber sie wird mit einer gekrümmten Scheitelpunktfunktion erstellt, sodass jeder Punkt separat gezeichnet wird. Jetzt kümmert sich diese um einen Teil ihrer Kurvenscheitelpunkte, Kontrollpunkte und die Punkte. Aber wenn ich das zeige, werden
wir keinen vollständigen Kreis haben. Wir müssen dies zuerst sehen, bevor wir das Problem lösen können. Also wenn ich hier rübergehe und
einen Blob erstelle und dann ein Objekt initialisiere. Wir werden eine Entschließung brauchen. Also mache ich einfach sechs, weil das für uns am einfachsten zu berechnen ist. Und dann mache ich die Breite geteilt durch zwei für die Mitte und die Höhe geteilt durch 2 für zentral y. Anstatt hier draußen zwei Methoden aufzurufen, rufe
ich hier ein Netz auf. Jedes Mal, wenn wir ein Objekt initialisieren, wird es bereits initialisiert. Und dann zeige ich das einfach hier drüben. Und wir müssen im Grunde genommen Form und diese Form für jeden Scheitelpunkt beginnen. Und wir legen es außerhalb der for-Schleife, weil wir die Form beginnen
und dann alle Scheitelpunkte zeichnen wollen , die wir benötigen, und dann die Formen beenden möchten. Diese werden also alle verbunden sein, denn wenn Sie die Begin-Shape hier hineinsetzen, auch
innerhalb der for-Schleife und des Eingangs. Dann wird jedes Mal eine neue Form für jede Iteration beginnen. Okay, also fange ich mit einem Radius von 100 an. Ich fange nicht mit Zufall an, also kannst du es klar sehen. Sie können also sehen, dass wir nur 1234 Punkte gezogen haben. Wir haben noch zwei weitere zu zeichnen. Fünf sind also hier drüben und sechs sind hier drüben. Oder eigentlich ist es 1, 2, 3, 4, 5 und schließlich 6. Lasst uns also Punkte fallen lassen. Also können wir es sehen. Ich werde es mit Kreisen zeichnen und es wird an der gleichen Position sein. Und dann gebe ich ihm eine Breite von 20. Sie können es also klar sehen. Und lasst uns die Füllung tatsächlich entfernen. Wie das funktioniert und warum wir nicht alle Kurven haben, liegt daran, dass sich die for-Schleife um den ersten Kontrollpunkt für die erste Kurve kümmert. Punkt Nummer 0 fungierte also als erster Kontrollpunkt. Und dann wird dieser der Erste in der Kurve sein. Und dann wird dies der zweite in der Kurve sein, und dies wird sein Kontrollpunkt sein. Wenn man sich die zweite anschaut, wird
dies ein Kontrollpunkt für diesen Start sein, für diese Startkurve. Und dann ist dies das Ende der Kurve und dies sind ihre Kontrollpunkte. Und wir werden rundum gehen. Wenn Sie also zu diesem Teil gehen, gibt
es hier keine Kurve da dies als Kontrollpunkt fungierte und dies der letzte Punkt ist. Was wir jetzt tun müssen, um dies zu beheben, da drei weitere Punkte hinzugefügt werden. Der erste wird also vor der Schleife sein. Und das wird der letzte Punkt sein. Also Auflösung minus 1. Und dann für y auch der letzte Punkt. Und wenn ich das jetzt durchführe, können
Sie sehen, dass wir jetzt einen Kontrollpunkt für diese Kurve haben, die dieser Teil ist. Und weil es vor dem ersten gezeichnet wird, versteht es
jetzt, dass dies auch eine Kurve ist und wir danach eine weitere brauchen. Das wird Ausgang 0 und y bei 0 sein. Denn nach diesem letzten Punkt muss
ich dies existieren, damit diese Kurve gezeichnet werden kann. Dies ist also ein Kontrollpunkt für diese Kurve. Und jetzt muss ich eine letzte Kurve zeichnen
, nämlich diese. Während also der Kontrollpunkt dafür ist, wird
es das sein. Das ist also die Nummer eins. Und wenn ich diesen Kurvenscheitelpunkt bei x
oder nicht unbedingt Nummer eins zeichne , sondern an Position 1 im Array. Wenn ich das jetzt durchführe, ist es fertig. Also bleibe ich, sagen
wir mit Hilfe, denn das ist nett. Umkreisen Sie es nicht, Sie sehen nicht mehr viel von den Punkten. Dies ist ein guter Punkt für uns, dies zu animieren. Einer der Gründe, warum ich überhaupt einen Kreis neu erstellen wollte , ist ein wenig Abwechslung. Und um das zu tun, ist es extrem einfach. Alles, was Sie tun müssen, ist einfach eine Update-Methode
innerhalb Ihrer Klasse zu erstellen und dann eine Variable zu erstellen. Man kann es wie auch immer nennen. Aber das wird unser Ausgleich sein. Und wir werden auch eine Schleife machen. Und wir gehen auf jeden Punkt ein, um ihn zu bewegen. Für den ersten wird
es also x an Position I plus gleich einem Zufallswert von Minus Offset bis Offset sein. Und das Gleiche gilt für y. Also erhöhen wir, was auch immer diese sind, um einen zufälligen Wert. Es wird sich also bewegen, bis es anfängt, den Kreis zu verzerren. Und ich fühlte mich hier rüber und ich tue es, naja, ich muss es auf die Draw-Funktion verschieben. Jetzt kann ich anfangen zu sehen, wie es sich bewegt. Also müssen wir zuerst den Hintergrund zurücksetzen. Es zeichnet also nicht. Und Sie können dies auf den Wert erhöhen, den Sie für die Offsets wünschen. Je höher es ist, desto schneller wird es verzerrt und du wirst nicht in den Kreis zurückkehren. so niedriger Wert wie 0,5 wird diese Kreisform für eine lange Zeit beibehalten, aber dennoch Variationen im Umfang des Kreises ermöglichen. Und Sie können auch nicht animiert werden, sondern einfach die Werte hier oder wenn Sie sie initialisieren. Nein, In diesem Beispiel geht es in diesem ersten Abschnitt darum, den Kreis zu erstellen oder neu zu erstellen. Aber im zweiten Teil, als ich darüber sprach, das Beispiel tatsächlich zu erstellen, werden
wir ein bisschen mehr über die Kollisionserkennung sprechen. Glutendetektion ist also sehr einfach zu verstehen. Es ist einfach, besonders für Kreise. Es geht einfach darum, den Abstand zwischen dem Zentrum zweier benachbarter oder Kreise im selben Raum zu finden. Und zu sehen, ob dieser Abstand zwischen den beiden Zentren geringer
ist als die Summe der beiden Radienaugen. Wenn es also weniger als die Summe der beiden Radien gibt, bedeutet
das, dass sie sich schneiden, was bedeutet, dass sie kollidieren. wollen wir also verhindern. So können Sie überprüfen, ob sich zwei Kreise schneiden, ist. Verwenden der Funktion „dist“, die im Grunde den Abstand zwischen zwei Punkten erhält. Also lasst uns das hier kreieren. Ich erstelle eine Methode innerhalb unserer Blob-Klasse namens collide. Und diese Methode wird dauern, weil sie den Abstand
zwischen sich selbst und einem anderen Objekt derselben Klasse überprüft , dann müssen wir auch einen Blob übergeben. Das ist also eine coole Sache, die Sie innerhalb von Klassen tun können, in denen Sie das Objekt
der aktuellen Klasse, die Sie verwenden, mit einer anderen Klasse oder einem Objekt aus einer anderen Klasse
interagieren lassen können der aktuellen Klasse, die Sie verwenden . Aber hier brauchen wir es nur, um mit sich selbst oder mit Objekten derselben Klasse zu interagieren. Wir müssen also nicht
mehrere Klassen davon erstellen , da wir bereits die Klasse selbst haben. Und die Art, wie wir das benutzen können, ist so. Wenn ich also schwebe und ich es d nenne, wird dies jetzt die Mitte x und Mitte y von diesem nehmen. Also können wir es einfach CX und CY nennen. Und dann wird die Entfernung dieses Kreises überprüft. Also das X und Y dieses Kreises zwei und x und y des anderen Kreises, über den wir hier hinübergehen. Wir können also einfach einen anderen Punkt c, dx machen, und wir können alles greifen, was dieses Objekt von Eigenschaften hat. Also können wir Punkt cx machen und dann andere Punkte sehen Y. Und wenn d kleiner ist als die Summe der beiden Radien, bedeutet
das den Radius,
den wir gerade haben R plus anderer Punkt r. , dann kehre ich wieder wahr zurück. Das heißt kollidieren. Was ich hier ändern muss, ist der Rückgabewert, weil er jetzt nichts zurückgibt, sondern tatsächlich einen booleschen Wert zurückgibt. Und dann sonst, oder wenn das nicht auscheckt, musste ich falsch zurückgeben. Und wir brauchen hier keine else-Anweisung da die Rückkehr irgendwie aus der Funktion herauskommt. Es gibt die Funktion zurück. Sie werden diesen Teil nicht mehr erreichen. Und wenn ich jetzt hierher gehe, entferne
ich den Blob, den ich erstellt habe, und dann mache ich das in eine ArrayList. Und ich werde mit Ihnen teilen, warum ich anstelle eines Arrays eine ArrayList erstelle. Also nenne ich es Blobs. Ich initialisiere es hier drüben. Also mache ich einfach eine neue ArrayList vom Typ Blob. Und jetzt hier unten. Und deshalb verwende ich ArrayLists. Ich kann einfach Blobs hinzufügen, ohne zu wissen, wie viele ich brauche. Also kann ich einfach Blogs machen, dot, add, new blob. Und ich werde es vorerst zu einer Resolution sechs machen. Und dann habe ich es in zufälliger Breite und zufälliger Höhe für Mitte x und Mitte y. Und jetzt, um jede Bindung anzuzeigen, wird es vier in tun. Also für Blob, Blob, Blobs, das sind viele Blogs und zeige es an. Jetzt werden sie einfach hinzugefügt, weil wir noch keine Kollision festgestellt haben. Um Kollision zu erkennen, können wir einfach eine for-Schleife verwenden, um alle vorhandenen Blogs mit dem neu hinzugefügten Blogs zu
durchlaufen. Wie ich das machen kann, ist, indem ich eine normale Schleife erstelle, die von
02 Blobs Größe minus eins geht , weil ich die letzte nicht erreichen möchte. Der letzte ist was? Ich überprüfe mich mit den anderen im Array. Und dann werde ich inkrementieren. Und hier werde ich sagen, ich werde den Index für den letzten Block erstellen, der innerhalb dieses Arrays erstellt wurde. Das wird also Blobs Punktgröße negativ sein. Das wird also weniger gehen als das letzte. Und das wird der letzte sein. Und jetzt suche ich nach dem Blog an Position j gegeneinander. Also Bobs Punkt-Katzenauge. Wenn also der Blob an Position j
, der zuletzt hinzugefügt wurde,
mit einem der
im Array vorhandenen kollidiert ,
die gerade nicht das letzte sind , dann müssen Sie diesen Blob entfernen. Jedes Mal, wenn dies einen Blob hinzufügt, wird überprüft, ob er mit einem
der vorhandenen kollidiert , und dann wird es ihn entfernen, damit es nicht mehr existiert. Und dann wird es in die Schleife gehen und das immer wieder tun. Und jetzt sieht man, dass eigentlich nichts kollidiert. Wenn ich jetzt zur Klasse zurückkehre und dies von 10 auf 50 in zufällig ändere. Und deshalb verwende ich eine kleinere Nummer, weil sie einen sehr kleinen Bildschirm haben. Und jetzt haben wir eine Reihe von Kreisen, die nicht kollidieren. Wenn ich das entferne, was die Hilfslinien sind
, sehe ich, dass sie nicht kollidieren. Das einzige Mal, dass sie kollidieren, als wenn sie sich verzerren. Wir können die Geschwindigkeit dafür reduzieren, weil sie jetzt kleiner sind, also ist es deutlicher. Sie können also einfach die Geschwindigkeit reduzieren und jetzt sehen Sie, dass sie sich nicht so stark bewegen. Jetzt kannst du sie einfach nach dem Zufallsprinzip färben. Ich hole mir ein paar Farben, die ich habe. Er kann wählen, welche Farben Sie wollen. Und ich habe auch eine Farbe für den Hintergrund gewählt. Also benutze ich das hier drüben. Und hier drüben. Wenn Sie übrigens hier drüben zurücksetzen, brauchen Sie diesen nicht. Der einzige Grund, warum ich es hier verwende, ist, dass
Sie jedes Mal, wenn dies R1 ist, den Hintergrund sehen können, der sich hier drin befindet. Wenn Sie also einen schwarzen Hintergrund
haben, können Sie ihn am Anfang sehen. Es spielt keine Rolle, aber wenn Sie jeden Frame speichern, werden Sie es sehen. Und dann habe ich meine Farben hier drüben. Ich kann hier einfach Farbe definieren und dann alle Designs nach dem Zufallsprinzip aus dem Kohlen färben. Und dann wird der Index ein zufälliger Index von 0 bis Farbpunktlänge sein. Und der Grund, warum ich zwei Farben dieser Länge nach oben gehe, ist, dass ich sie
in eine Ganzzahl umwandle , da wir keinen Float für Indizes haben können. Und dann wird es das begrenzen. Was auch immer diese Zahl ist, es wird minus eins sein. Und jetzt gehe ich hier rüber und die Anzeigemethode, ich werde Farbe füllen und du wirst die zufälligen Farben sehen. Sie können den Strich auch entfernen, wenn Sie möchten, oder Sie können den Strich weiß machen. Sie werden es auch anders aussehen lassen. In der nächsten Lektion sprechen
wir über das Neuerstellen. Rechtecke sind eine der Möglichkeiten, Rechtecke neu zu erstellen.
3. Textur 01: Recreating: In dieser Lektion erstellen wir eine Reihe von Rechtecken mit handgezeichneten Linien. Anstatt die native Funktion in der Verarbeitung zu verwenden, um zu verstehen wie die Linien der Rechtecke erstellt werden. Dann müssen wir mit diesen Zeilen beginnen. Zuerst. Ich erstelle nur eine normale Funktion. Und hier bevor wir eine Klasse für dieses neue Objekt erstellen, und ich nenne es Wave. Dies sowie Garantie verwenden einen gekrümmten Scheitelpunkt, um diese fließende Bewegung zu erzeugen. Da Scheitelpunkte tendenziell sehr eckig sind und wir auch eine for-Schleife benötigen, weil wir zeichnen werden, weil Co-Scheitelpunkte im Grunde Punkte sind und wir mehrere Punkte benötigen, um eine Linie zu zeichnen. Anstatt also die Linienfunktion zu verwenden, verwenden
wir Punkte, um die Linie zu zeichnen, mit der wir Rechtecke zeichnen werden. Dafür brauchen wir auch eine Entschließung und müssen auch eine X- und Y-Position haben. Wenn ich jetzt Wave hier nenne, kann
ich einfach eine Auflösung von sechs verwenden, sagen wir mal. Und dann kann ich es bei 0 für
x starten und dann wird es für y in der Höhe geteilt durch zwei sein, also in der Mitte, vertikal. Und lasst uns die Auflösung
hier beginnen , weil wir sie auch mehrmals verwenden werden. Und dann braucht eine Welle auch eine Breite oder eine Linie von Punkten wird auch eine Breite benötigen. Also erstelle ich hier oben eine Breite oder einen Wert für Breite. Und später, wenn wir senkrecht gehen, werden
wir auch mit der Höhe gehen. Aber im Moment werden wir nur eine Linie horizontal auf
dem Bildschirm zeichnen , damit wir sehen können, wie das tatsächlich funktioniert. Also werde ich hier einfach mit einem v definieren. Machen wir es also zur Breite des Bildschirms. Und dann brauchen wir auch eine Lücke. Der Grund, warum wir die Lücke brauchen werden, weil wir Punkte haben, aber wir müssen wissen, wie weit sie sein werden, um die Linie entlang der Breite zu ziehen, obwohl wir verlangen. Zeichnen Sie also zuerst aus der Breite 0,02, wir müssen wissen, wie groß der Abstand
zwischen jedem der Punkte sein wird und nach dem wir finden können. Wenn ich also nur eine Lücke definiere, die wir finden werden, indem wir die Breite durch die Auflösung dividieren. Was auch immer die Breite ist, wenn ich sie durch die Anzahl der Punkte dividiere, die ich habe
, bekomme ich die Anzahl der Lücken, um die Punkte zu platzieren. Im Grunde wie ein Raster zeichnen. Wenn Sie also ein Raster zeichnen, möchten
Sie wissen, wie groß die Breite jeder Zelle sein wird. Um zu wissen, wie viel Bewegung Sie nach rechts oder unten gehen müssen , um diese Zellen im Raster zu erstellen. Also machen wir das Gleiche, aber wir werden es mit nur einer Zeile machen. Also beginnende Form und dann Endform, weil wir gekrümmte Scheitelpunkte verwenden. Und dann mache ich eine Schleife. Und dann wird es hier ein gekrümmter Scheitelpunkt sein, genau das, was wir mit Gittern machen. Also mache ich es, ich multipliziere es mit der Lücke, die normalerweise die Zellenbreite ist. Genau wie eine Zelle in einem Raster oder wie man Raster zeichnen würde. Aber wir müssen x hinzufügen, da x nicht immer wie ein Raster bei 0 ist, sondern
wir werden es über den Bildschirm verschieben. Genau wie wir es mit Cx und CY für den Kreis gemacht haben. Aber dieses Mal wird es auf einem Spiel stehen. Und dann wird es hier nur warum sein? Weil wir es nur auf der horizontalen Linie bewegen. Wenn ich es jetzt zeichne, habe ich die Grenze. Aber wie Sie bemerken, ist es genau wie das, was wir mit Kreisen gemacht haben. Diesem fehlen Steuerpunkte und zeichnet
daher nicht den Kurvenscheitelpunkt hier drüben. Um es also aus dem Nullpunkt zu ziehen, muss
ich einen aktuellen Scheitelpunkt hinzufügen, bevor er als Kontrollpunkt fungiert. Und das wird eine Lücke plus x. Wir müssen nicht mit mir multiplizieren, weil es die erste sein wird. Und dann werden wir für Y einfach ein Y machen. Jetzt haben wir einen Punkt, der hier anfängt. Und damit wir sehen, wird es auch einen Kreis zeichnen wie zuvor. Und ich werde es in die gleiche Position bringen. Und dann schaffe ich es 10. Du siehst also die Punkte. Wir sehen, dass wir überall Münzen haben, wo wir sie brauchen. Und dann können wir auch den letzten Punkt ziehen. Weil wir nur die Lücken haben. Und in einem Raster zeichnest du normalerweise nur aus
der Ecke und dann wird das Rechteck oder die Zelle uns zeichnen, das letzte wird auch trocknen. Aber hier haben wir kein Rechteck, wir brauchen nur Punkte. Also werde ich auch sagen, dass ich weniger oder gleich bin, erhöhe. Ich werde am Ende auch einen Punkt haben. Und um dann am Ende den zu zeichnen, werde ich nur den aktuellen Scheitelpunkt bei Rey's sagen
, der letzte multipliziert mit der Lücke. Und dann wird das ja sein. Und jetzt haben wir das auch. Oh, und vergiss nicht, das x hinzuzufügen, denn gerade jetzt zeichnen wir nur von 0, also spielt es keine Rolle, aber später wird es wichtig sein. Wenn ich jetzt die Breite anpasse, machen wir es
also zu einer 100 und führen das aus. Dann können wir sehen, dass es hier drüben ist. Und wenn ich die x-Position in Breite dividiert durch zwei ändere , können wir
jetzt sehen, dass sie sich bewegt, weil wir jetzt jedem von diesen x hinzugefügt haben. Also stellen wir sicher, dass sich alles mit dem X bewegt, das wir brauchen. Es ist also zusätzlich zu dem Ort, wo die Achse passiert, das passieren wird. Und jetzt ist es, du machst es interessanter. Und um die Wellenform zu erstellen, werden wir jeden dieser Punkte zufällig versetzt. Ich mache es vorerst einfach für das Y. Und das wird ein Zufallswert sein. Ich nenne es V Offset. Eigentlich hat es es in Y-Offset geändert. Und dann werde ich hier drin zweimal versetzt laden und geben wir ihm einen Wert von vier. Zufall wird also von 0 auf einen beliebigen Wert auf vier steigen. Und ich würde nicht empfehlen zu kopieren und einzufügen, aber ich werde kopieren und einfügen, um dieses Video kürzer zu machen. Und tatsächlich brauchen
wir einige der Kreise nicht mehr. Jedes Mal, wenn ich das durchführe, wirst
du sehen, dass es eher wie eine Welle aussieht. Lassen Sie uns das also tatsächlich größer machen. Lassen Sie uns eine Breite machen
und fangen wir es von 0 an, damit Sie es klarer sehen können. Und weil wir nur eine Auflösung von sechs haben, sind
die Punkte zu sehr verteilt. Wenn ich das mache, sagen wir 16, indem wir
einfach einen hinzufügen, können wir es kurviger sehen. Und wenn ich dann den Offset erhöht, um 10 zu sagen, können Sie mehr Kurven in unserer Linie sehen. Jetzt können wir diese Linie verwenden, um unsere Rechtecke zu erstellen. Und so wird es handgezeichnet aussehen, aber mit einem Offset der Mieter zu viel. Also reduziere ich es auf vier. Und dann reduziere ich auch die Auflösung auf etwa sechs, denn je mehr verteilt ist, desto mehr ähnelt ein handgezeichnetes Gefühl. Denn wann immer du es zeichnest, macht
es keinen Sinn, dass wir alle sehr wackelig sind und wir mit den Tumaini-Offsets zeichnen. Aber im Allgemeinen zeichnen wir eine flüssige Bewegung. Es sieht also nicht immer sehr wackelig aus wie zuvor. Um nun ein Rechteck zu erstellen, werde
ich, anstatt nur Breite
zu haben, Breite und Höhe haben. Und dann habe ich auch x Gap. Und warum Gap. Und dafür wird es x Lücke sein. Und dann wird für den anderen h geteilt durch Rey's, was die Höhe durch Rennen geteilt ist. Und dann die Höhen werde
ich die Höhe durch zwei geteilt machen. Und für die Breite werde ich es auch mit geteilt durch zwei machen, damit wir es sehen
können, denn wenn ich den ganzen Bildschirm mache, wirst du nur einen Teil der Zeile sehen. Und jetzt beheben wir diese Funktion, indem wir die Lücken hier hinzufügen. X Lücke und warum Gap. Und dann werden wir endlich x Offset und Y Offset haben. Sie können den gleichen Offset für alle haben, aber ich werde sie anders haben, weil Sie später mit ihnen spielen können. Und du kannst es auch einfach aufräumen. Und so können Sie alle Parameter sehen. Du kannst einfach Enter drücken. Und wenn Sie dann Command T ausführen, formatieren Sie es für Sie. Jetzt hat es die gleiche Einrückung wie die andere. Und jetzt können wir das reparieren, um es für all diese zu machen. Und dann statt nur y, y gap plus y, und auch hier drin, Es werde ich mit y plus y multipliziert. Und das Gleiche gilt für diesen, aber dieses wird Epochen sein, multipliziere es mit y gap plus y. Und dann können wir den Offset hinzufügen, jeder davon. Also mache ich einfach plus zufälligen X-Offset. Und hier plus zufälliger Y-Offset. Du kannst das Gleiche auch hier machen. Und der letzte. Jetzt weiß ich, dass wir dasselbe für x und y erstellt haben. Also bewegen wir uns irgendwie diagonal, in der du gerade bist. Aber wir werden
diese Wellenfunktion nicht gleichzeitig horizontal und vertikal verwenden . Wir werden es für einige vertikale Linien und horizontale Linien separat verwenden, aber wir verwenden dieselbe Funktion. Sie können definitiv eine horizontale Linie und dann eine separate Funktion für eine vertikale Linie ausführen. Aber du wirst sehen, dass es jedes Mal sehr ähnlich ist. Auf diese Weise erstellen Sie nur eine Funktion und verwenden sie dann sowohl für vertikale als auch für horizontale Linien. Und wie du das kannst, ist so. Sagen wir also, ich versuche Todesfälle vom Nullpunkt aus. Und dann trockne ich es auch dafür. Ab 00 ist das im Grunde x und y. Und dann wird die Auflösung gleich bleiben. Und dann werden
wir für die erste, die x Lücke ist, x cap und y gap verwenden. Und dann endlich ein Wert für jeden Offset. Also werde ich es weitermachen. Und jetzt ist das der Trick. Im Moment haben wir das also. Und wenn ich das mache, wird
es eine diagonale Linie sein, wie ein Sack, weil wir x und y zusammen verwenden. Wie Sie also nur eine horizontale Linie oder
eine vertikale Linie erstellen können , besteht darin, die Position der ersten in dieser Zeile zu erstellen. Das ist also x und y. Und dann für x cap und y gap wirst
du nur einen von ihnen benutzen. Also warum Gap, es wird 0 sein, weil ich nichts zu teilen habe. Und dann brauchen wir für den X-Offset, weil
wir ihn horizontal zeichnen, weil
wir ihn horizontal zeichnen, keinen Offset für x, wir brauchen einen Offset für y. Und wenn ich das jetzt zeichne, wird er bei 000 ausgerichtet. Wenn ich das also bewege, wird die Höhe durch zwei geteilt. In der Mitte des Bildschirms
können wir sehen, dass es funktioniert, um sicherzustellen, dass es auch für vertikale Linien funktioniert. Ich kopiere das und belasse das als 0. Aber benutze eine große Lücke. Und dann wird der Offset für das x vier sein. Und der Offset für y wird 0 sein. Und das ist die Linie hier drüben. Also muss ich es auf die Breite geteilt durch zwei verschieben, damit du es sehen kannst. Und das ist die senkrechte Linie. Wir wissen also, dass dies für vertikale Linien und horizontale Linien funktioniert. Jetzt ist es an der Zeit, unsere Klasse zu erstellen, um das Rechteck zu erstellen. Ich erstelle einen neuen Tab und nenne es einfach Poly. Für Polygon kann man es also wie auch immer nennen. Ich werde dies nicht als Rechteck angeben, aber zögern Sie nicht, dies zu tun. Und jetzt können Sie das Polygon entweder
nur mit der Auflösung definieren und dann die Breite und Höhe nach dem Zufallsprinzip angeben. Oder Sie können XY, Breite und Höhe mit einer Auflösung verwenden. Wenn ich also im Grunde ein Rechteck erstelle, werde
ich beide Konstruktoren erstellen. Der erste wird also der Zufall sein, nur damit wir sehen können, wie es funktioniert. Also werde ich hier drüben eine Lösung machen. Und natürlich muss es auch hier sichtbar sein. Es muss auch dort definiert werden. Jetzt wird Raz den gleichen Unterstrich für x. Wir werden zufällig von 02 Breiten gehen. Und dann wird es für y zufällige Höhe sein. Und diese werden auch hier definiert werden. Definieren Sie auch Breite und Höhe. Dies sind also im Grunde die Eigenschaften für jedes Rechteck. Und Breite und Höhe werden sein,
denn ich wollte, dass sie vorerst
Quadrate sind, weil ich denke, dass Quadrate einfacher zu arbeiten sind. Und dann haben Rechtecke einfach eine andere Höhe als die Breite. Ich mache von 20 bis 100. Und dann mache
ich es für die Höhe gleich der Breite. Danach ziehe ich das Ganze in diese Klasse. Jetzt haben wir es hier drüben und dann Befehl T oder steuern T unter Windows, um dort zu formatieren, nur um es zu bereinigen. Und dann beendete die Anzeigemethode. Wir werden ein Rechteck als Referenz erstellen. Also mache ich dieses Rechteck x bei x und y und dann Breite und Höhe. Und dann erstelle ich diese Rechtecke. Also schnapp ich mir die. Und dann definiere ich die x-Lücke hier drüben. Und warum auch Gap. Und schließlich wird der Offset bei vier liegen. Jetzt brauchen wir die nicht mehr. brauchen wir vorerst auch nicht. Und anstatt diese Werte zu verwenden, verwende
ich x und y. Also für den ersten wird es überall dort sein, wo x und y sind. Das ist also die Ecke eines Rechtecks. Und das ist unsere Referenz hier drüben. X und Y werden also die Ecke sein, dann fangen wir an. Und das ist die horizontale und dann wird es x Lücke sein. Und dann gibt es keine, nein warum Lücken hier drüben, denn das ist eine horizontale Linie. Und dann brauchen wir keinen Offset für x weil. Wir müssen es nur auf der Y-Achse versetzen. Und dafür werden
wir die vertikale Linie auf der rechten Seite zeichnen. Was wir also tun werden, ist, die Breite auf x hinzuzufügen , das wird sie im Grunde um die Breite unterschiedliches Quadrat oder Rechteck schieben. Und dann haben wir 0 für x Gap. Und warum Gap dann? Auch hier wird
es für jede horizontale Linie eine X-Kappe und einen Y-Offset geben. Für jede vertikale Linie gibt es eine große Lücke und einen X-Offset. Offset wird also für das x sein und dann wird y 0 sein. Jetzt, für den unteren, wird
es an Position x sein, weil wir es von demselben Punkt aus beginnen werden wie der oben. Und dann werden wir
die Höhe zu y hinzufügen , denn wir sind hier drüben und wir müssen hier runter gehen. Dies wird eine x Cap haben, da es sich um eine horizontale Linie handelt. Und dann wird es einen Y-Offset haben. Und zum letzten wird es x und y haben weil wir von derselben Anfangsecke ausgehen. Denn für die vertikalen Linien gehen wir von oben nach unten. Und dann wird es keinen Offset oder
keine Lücke für x und dann eine große Lücke und dann Offset und 0 haben. Okay, das Paul-Polygon hier drüben. Und Paul II. wird einem neuen Polygon oder einer Polyklasse entsprechen. Und dann machen wir die Entschließung. Also fange ich einfach damit an, lass uns fünf machen. Und dann ziehen wir es am Rande, Marge. Und ich mache das genau hier. Also erstelle ich einfach eine Marge, damit du sie sehen kannst. Denn wenn ich nur 000 mache, wird es manchmal an den Seiten versteckt sein. Damit es klarer wird, damit wir es sehen, dann mache ich einfach eine Marge von 50 oder sogar 20 in Ordnung. Und dann mache ich mit abzüglich der Marge. Wir haben also auch den Spielraum auf der rechten Seite. Und dann das Gleiche für die Höhe. Oh, das hab ich vergessen. Ich habe diesen Konstruktor noch nicht erstellt, also werden wir das einfach tun, den zufälligen. Es wird also nur die Auflösung definieren. Und dann zeichne ich. Ich zeige das hier drüben. Was Sie darunter sehen, ist die Referenz oder das Rechteck, sodass Sie sehen können, dass es perfekt folgt. Wenn ich diesen Teil entferne, können wir unser Rechteck sehen. Und je kleiner es ist, desto verzerrter wird es aussehen, weil die Auflösung für alle festgelegt ist. Wenn Sie also nur die Auflösung reduzieren, wird es eher wie ein handgezeichneter Look aussehen. Das wird gut funktionieren. Wenn ich eine ArrayList habe, sagen
wir mal, von Polygonen. Und dann füge ich eine neue Liste hinzu. Ich muss eine Schleife erstellen. Also für, sagen wir 10, dann wird das gut funktionieren. Es ist nicht wichtig, die genaue X- und Y-Position oder die Breite und Höhe zu kennen. Wenn ich jedoch so etwas erstellen möchte, muss ich genau wissen, wo x und y sein werden oder ob ich ein Raster
mit den Rechtecken erstellen möchte , die ich mehr sein muss spezifisch mit der Einstellung von X und Y sowie Breite und Höhe für jedes der Rechtecke. Also erstelle ich einen anderen Konstruktor, und dieses Mal kopiere ich ihn einfach und füge ihn ein. Und ich füge den x-Wert hinzu. Und dann füge ich auch y, Breite und schließlich Höhe hinzu. Wir haben also die grundlegenden Eigenschaften für das Zeichnen unseres Rechtecks. Und jetzt werde ich all dies ändern, um Breite und XOM Unterstrich y zu haben. Und ich werde dies in Höhe ändern, damit es
später definieren kann , wann wir es erstellen möchten. Und wenn ich hier rübergehe und ich, sagen
wir, ich möchte einen Thread oder eine Zeile erstellen. Rechtecke. Dann kann ich einfach multipliziert mit der Breite dividiert durch 10 machen. Und dann machen wir die Höhe geteilt durch zwei für die Position ihrer Höhe. Oder wenn die y-Position. Und dann machen alle Breite geteilt durch 10. Und dieses wird ebenso wie die Breite geteilt durch 10, was die Höhe jedes der Rechtecke ist, was sie quadratisch macht. Und jetzt hast du eine Reihe von Rechtecken. Beachten Sie auch, dass dies aus der Ecke gezogen wird. Wenn Sie es also nach oben drücken müssen, liegt die Höhe perfekt in der Mitte. Sie müssen die Breite geteilt durch 10 subtrahieren, geteilt durch 2. Und das wird genau im Mittelpunkt stehen. Denn mit geteilt durch 10 ist die Breite und Höhe dieser Rechtecke. Und wenn man das durch 2 teilt, wird diese Ecke einfach um die Hälfte der Höhe nach oben schieben, wodurch der zentrale Punkt nun über die Mitte dieser Rechtecke geht. Die andere Hälfte der Lektion können Sie mithilfe des Rekursionskurses erstellen. Sie müssen diesen Kurs nicht belegen, weil ich versuchen werde dies in kurzer Zeit so gut wie möglich zu
erklären. Aber natürlich ist es etwas absurd, den ganzen Kurs zu belegen und ihn
nur in diese Lektion zu integrieren und zu erwarten, dass Sie alles verstehen, wenn Sie nicht verstehen, was Rekursionen sind. Auch die anderen Teile einiger Lektionen werden nur
Beispiele sein, die Ihnen zeigen, wie Sie das verwenden können, was wir für die Textur erstellen. In anderen Beispielen, die wir entweder vorher oder nur in Ihrer allgemeinen Arbeit erstellt haben. Sie können dies also mit dem Intro zum generativen Kunstkurs nutzen. heißt, Sie können damit ein Raster dieser Art von Rechtecken erstellen. Oder Sie können tun, was ich gerade tun werde, um das, was
wir als Rechtecke oder die primitiven Rechtecke, die
wir im
Kurs für rekursive Funktionen verwendet haben, durch dieses Rechteck zu ersetzen wir als Rechtecke oder die primitiven Rechtecke, die wir im
Kurs für rekursive Funktionen verwendet haben , das wir gerade erstellt haben, um dem Textur hinzuzufügen. Rekursive Funktionen wiederholen also immer wieder
denselben Code mit verschachtelten Funktionen. Anstatt also Schleifen zu verwenden, rufen
wir einfach die Funktion in sich selbst auf, die eine Endlosschleife erzeugen kann. Aber wenn Sie es mit einer Bedingung kontrollieren, dann geht es Ihnen gut und Sie können damit wirklich großartige Ergebnisse erzielen. Wir werden das einfachste Beispiel aus denen in der Klasse für rekursive Funktionen machen, und das ist das Beispiel für Quadrate. Was ich hier tun werde, ist, das zu entfernen was ich hier erstellt habe, und die Anzeigemethode zu entfernen, sie einfach in die Schublade zu legen, so dass es
sinnvoller ist, dass wir innerhalb des Displays trocknen. Aber dann rufe ich jedes Jahr einfach keine Schleife an. Um das sehr schnell zu machen. Was wir brauchen werden, ist eine Methode, die Sie auch immer aufrufen können, aber wir werden es generieren nennen, weil sie jedes Mal eine neue Generation generieren
wird. Und dann geben wir ihm eine Nummer. Und diese Zahl wird die Anzahl der Generationen sein. Und dann werden
wir eine ArrayList haben, die ich temporär nennen werde. Und dann wird diese ArrayList
die Polygone haben , die die nächste Generation sein werden. Und sie werden vom Typ Holly oder unserer Klasse sein, die wir geschaffen haben. Und weil ich gesagt habe, dass wir die Funktion in sich selbst
aufrufen werden , um diese Endlosschleife zu erstellen. Wir rufen es einfach hier rein. Und dann werde ich die
Degeneration passieren , weil wir die Generation auch jedes Mal dekrementieren werden. Und dann werde ich es tun, oder ich werde diese Funktion bitten, nur alles zu tun, worum ich es bitte,
innerhalb dieses Zustands zu tun , wenn die Generation größer als eine ist. Weil ich die Endlosschleife vermeiden möchte. Es ist also irgendwie ähnlich wie eine While-Schleife, da eine While-Schleife hier oder davor
die Themenvariablen hat oder hat. Und dann gibt es eine Bedingung, und dann gibt es ein Inkrement innerhalb dieser Schleife. Und unsere Schleife ist diese ganze Funktion. Also werden wir es hier rausbringen. Und wir werden jedes Mal dekrementieren. Wenn ich also fünf Generationen hierher lege, dann wird es das für die erste tun. Es wird prüfen, ob es größer als 15 ist, ist größer als eins. Das wird zu einem Dekret führen, nachdem hier alles erledigt ist. Und dann werden es vier sein. Und sobald es eins erreicht hat, wird es prüfen, ob es größer als eins ist, ist es nicht. Also wird es aufhören. Und jetzt werden
wir alle Polygone durchlaufen, die sich in ihrer ArrayList befinden. Im Moment haben wir nichts, also fügen wir eins hinzu. Lassen Sie uns eine Entschließung geben. Also rufe ich an,
nenne es Polya-Harz, nenne es hier oder definiere es hier drüben. Und lass es uns nur drei machen. Und dann zeichne ich ein großes Rechteck vom Rand, Rand zu was? Minus Marge und Höhe minus Marge Wir haben vergessen, neue MyClass hinzuzufügen. Jetzt haben wir eines unserer Rechtecke und weil wir es hier anzeigen,
wenn ich auf Run klicke, dann haben wir das. Auch. Ich muss dies mit zwei multiplizieren, weil ich das am Rand vorantreibe, und dann schiebe ich das mit dem Rand voran, aber es ist hier oben, also muss ich es um Marge multipliziert mit zwei schieben. Und jetzt haben wir ein Rechteck oder ein Quadrat. Was ich hier drüben mache, ist durchschleifen. Also mache ich einfach Paulie, Paulie in Holly's. Ich gehe alle Elemente in der ArrayList durch und ich werde sie hier teilen. Jetzt haben wir also nur einen. Wir teilen es hier drüben auf. Und später mache ich alles, was Pollicis es machen, was auch immer in der Temp ist, weil wir alles innerhalb der temporären ArrayList erstellen werden. Und dann nehme ich alles in tmp und ändere oder überschreibe alles, was in Polys ist. Jetzt haben wir eine neue Generation und die Pauli's ArrayList. Und später werden wir all diese durchlaufen und sie dann wieder teilen. Es wird also eine Schleife der Division sein. Und Sie können dies tun, indem Sie es zunächst einfach dem temporären Array hinzufügen, aber Sie werden ein neues Polygon hinzufügen. Und das neue Polygon wird einen Bruchteil der Größe
des ursprünglichen Polygons von der ersten Generation, die wir ergreifen, ausmachen. Dafür wird es also Poly-Epochen sein. Und dann werde
ich das tatsächlich in p ändern, weil das sehr, sehr lang sein wird. Also werde ich mir die Ausstellung schnappen, denn für die erste möchte ich, dass sie an derselben X- und Y-Position ist. Und ich nehme auch die Y-Position ein. Aber dann möchte ich die Breite und dann die Höhe haben. Das teile ich durch zwei. Und dann rufe ich generiere innerhalb des Setups an. Und ich mache es nur damit, also gebe ich es zwei Generationen. Okay, also habe ich einen Fehler gemacht
, der dies außerhalb des wenn bedingten bringt,
aber ich sagte, es ist wie eine While-Schleife und die While-Schleife Dekrementiert innerhalb der Bedingung. Wenn ich es jetzt führe, haben wir das. Jetzt hast du nicht die erste Generation, du hast nur die zweite. Wenn ich das dreimal mache, dann wirst du sehen, dass es nicht nur ein Viertel der Größe des größeren, sondern auch der kleineren ist. Also gehe ich zurück zu zwei und lass uns die anderen vier erstellen. Weil wir jedes der Quadrate in vier verschiedene Quadrate verwandeln wollen. Zum zweiten bewegen
wir uns durch die Breite geteilt durch zwei
der ursprünglichen, weil wir alles durchlaufen, was am Anfang vorhanden ist. Es bezieht sich auf einen hier drüben. Sie können diese also sehen und wir können verstehen, was passiert. Also begann er den ersten hier drüben und dann gingen wir nur auf halbem Weg zur Breite und auf halbem Weg zur Höhe. Das ist also nur ein Viertel des ursprünglichen Quadrats. Und dann fängt es für den zweiten von hier aus an. Also die Hälfte der Breite. Also mache ich alles, was x plus Breite geteilt durch zwei ist. Also p Punktbreite geteilt durch zwei, der Rest bleibt gleich. Wenn ich also zwei Generationen mache
, wirst du sehen, dass es gut funktioniert. Ich fülle auch nicht aus. Sie können also die Zeilen sehen. Und jetzt, für die dritte, verschiebe
ich die Breite nicht oder bewege mich nicht horizontal, aber ich bewege mich vertikal. Das wird also y plus die Höhe geteilt durch zwei sein. Und dann wird der letzte sowohl die Breite als auch die Höhe schieben. Jetzt haben wir vier. Wenn ich also drei Generationen mache, wirst du sehen, dass es das halbiert. Und wenn ich dann vier Generationen mache, schneidet oder schneidet es sie auf ein Viertel des ursprünglichen Quadrats und so weiter und so weiter. Aber um dies ein bisschen interessanter zu
machen, müssen Sie einfach nicht jedes Quadrat schneiden. Wenn ich also float, höre nur einen Zufallswert von 0 auf eins, und dann überprüfe ich ob r, also gebe ich ihm eine Wahrscheinlichkeit von 50 Prozent, dass es geteilt wird. Und dann werden die anderen 50 Prozent die Quadrate gleich bleiben. Es wird also bei P-Punkt SPDY bleiben, da es die volle Breite und volle Höhe haben wird. Jetzt können Sie sehen, dass es interessanter ist, weil dieser Teil für alle Generationen geteilt
wurde. Dieser wurde nur zweimal geteilt. Man wurde also nur einmal geteilt. Sie können es beliebig oft ausführen und erhalten immer andere Ergebnisse. Sie können die Wahrscheinlichkeit hier auch von
50 Prozent ändern , um jeweils etwas anderes zu tun. Nehmen wir an, Sie möchten, dass die Mehrheit gekürzt wird, dann tun Sie 70%, damit dies gekürzt wird. Wenn r also weniger als 0,7 ist, werden
Sie sehen, dass mehr von ihnen geschnitten werden. Und wenn Sie dies einfärben
möchten, können Sie einfach eine Reihe von Farben hinzufügen. Wir können dies also einfach mit Farbe füllen , da die Linien kein Rechteck zeichneten. Wir versuchen nur ein paar Linien, damit Sie
einfach Rechtecke zeichnen können und diese werden farbig sein. Sie können diesen auch Ränder hinzufügen. Also wenn ich x minus 2 oder x plus zwei mache. Also wenn ich herkomme und ich mache plus zwei für diese und dann minus 2 für diese. Als ob ich die Marge von zwei hinzugefügt hätte und dann eine zusätzliche Marge für den einen hinzugefügt habe. Wenn ich das jetzt mache, siehst du, dass es ein bisschen Platz gibt. Und dann kann ich einen weiteren Rand oder einen zusätzlichen Rand nur für die inneren Rechtecke hinzufügen. Sie können es etwas klarer sehen und Sie können den Strich von diesem entfernen. Weil wir jetzt den doppelten Schlag sehen. Sie können also einfach keinen Schlaganfall hier drüben machen und dann einen schwarzen Strich für diesen. Und wir haben ein neues erfundenes Rechteck und rekursive Funktionen. Das ist so ziemlich alles, was Sie über diesen Teil der Textur wissen müssen. In der nächsten Lektion sprechen wir mehr über Farbe, insbesondere zufällige Farbinterpolation.
4. Farbe 01: Random Farbinterpolation: In dieser Lektion sprechen wir über Farbe, insbesondere Farbinterpolation. Ich habe in einem anderen Kurs darüber gesprochen. Aber ich wollte es hier teilen, nur damit wir eine
Reihe von Möglichkeiten haben, Ihr Design zu färben. Die Farbinterpolation erzeugt also grundsätzlich einen Farbverlauf von einer Farbe Ihrer Wahl zu einer anderen Farbe, basierend auf Ihrer Wertzuordnung. Basierend auf der Zeit, die das dritte Argument für diese Funktion oder für diese Methode ist Lippenfarbe. Heute werden wir jedoch die Zeit oder
den Wert des dritten Arguments nicht irgendetwas auf dem Bildschirm zuordnen . Wir werden nur Zufälligkeit
verwenden um mit den Farben herumzuspielen, die diese Methode erzeugt. Für diese Lektion wird sich direkt mit dem Beispiel befassen, denn es wird kein sehr schwieriges Beispiel sein. Und wir werden einige der Techniken verwenden, die wir in den vorherigen Beispielen verwendet haben. Also erstelle ich eine neue Registerkarte, weil wir eine Agentenklasse erstellen werden. Für diesen Agenten zeigt Tom Bögen und Kreise und Linien an. Dafür brauchen wir eine X- und Y-Position und einen Radius. Und dann verwenden wir auf jeden Fall Farbe. Also erstelle ich drei Farben. rufe ich einfach an, und die anderen beiden rufe
ich eins und Kultur für die erste Farbe, den Farbverlauf und die zweite Farbe an. Jetzt werden
wir innerhalb des Konstruktors unser x und y und den Radius initialisieren. Also wird x ein Zufallswert sein. Und machen wir es von Rand zu Breite minus Rand. Und ich definiere Marge. Genau hier. Y wird das Gleiche sein, aber mit der Höhe. Auf diese Weise haben wir Platz um den Bildschirm herum. Grenzen ist also nichts vollgestopft. Und dann wird r nur ein Zufallswert von, sagen wir, 3200 sein. Und jetzt für Farben, Fangen wir zuerst mit Schwarz und Weiß an. So fange ich gerne an. Wann immer ein Design etwas Neues macht, mache
ich die erste Farbe, weiße Soldaten zum Ausmalen. Und dann 255 für Weiß. Und dann werden zwei schwarz sein. Und jetzt definieren wir die Methode der Farbinterpolation. Die Methode heißt also Blurb-Farbe. Und dann braucht es die erste Farbe, die zweite Farbe, und ich nehme den Zeitwert. Wenn Sie dies also von 0 auf die Breite des Bildschirms zuordnen
möchten, ändern sich die Farben von diesem Punkt zum anderen Punkt, je nachdem, welche Formen noch vorhanden sind. Wenn also alle Ihre Formen auf der rechten Seite des Bildschirms vollgestopft sind, haben sie die zweite Farbe. Da dieser Wert von 0 auf
10 geht , ist es die erste Farbe und eine wird dies sein. Und dann werden alle Zahlen dazwischen alle Farben zwischen 255 sein, was weiß und 0 ist, was schwarz ist. Aber hier sage ich einfach, ich will einen Zufallswert von 0 zu eins. Und das wird den Trick für uns machen. Und jetzt lasst uns etwas zeigen. Fangen wir mit einem Kreis an. Und ich gebe es x und y
und dann den Radius. Außerdem verwende ich Radius und Kreise, obwohl dies als Durchmesser angesehen wird. Obwohl ich hier einen Radius initialisiere, verwende
ich ihn hier immer noch als Durchmesser. Sie können also auch multipliziert mit zwei tun, aber ich werde es einfach so behalten. Und dann die Farbe. Die Füllung davon wird also das sein, was wir mit der Farbinterpolationsmethode definiert haben. Gehen wir nun zurück und definieren wir ein Array von Adrian oder eine ArrayList von Agenten. Und dann gehe ich hier rüber. Und ich werde Agenten dazu bringen, einen neuen Agenten hinzuzufügen. Und dann gehe ich. Alle von ihnen. Für Agent nennen wir es also Agent Agenten. Und dann zeige ich das. Wie Sie sehen können, erhalten wir eine Füllung, die zufällig von 0 bis 255 ist. Dies ähnelt der Auswahl einer zufälligen Farbe von Schwarz bis Weiß oder von 0 bis 255, wenn Sie es hier machen. Sagen Sie also zufällig von 0 bis 255, und wir müssen die 0 nicht machen. Es ist das Gleiche. Der einzige Unterschied besteht darin, dass es blinkt, weil wir die Füllung hier hinzugefügt haben. Also wenn ich es hier mache, müssen wir es in eine Ganzzahl konvertieren, weil Farben tatsächlich eine ganze Zahl sind. Und das ist das Gleiche. Wenn ich jedoch verschiedene Farben von Weiß und Schwarz wähle, werden
wir ein ganz anderes Ergebnis erzielen. Definieren wir also eine Reihe von Farben. Ich habe eine, die ich hier oben einfach definieren werde. Und anstatt die Farben manuell zu erhalten oder zu definieren, können
wir einfach einen Zufallswert aus dem Array abrufen. Also haben wir hier eine Reihe von Farben, aus denen ich wählen kann. Und wir machen das genauso wie die zufällige Färbung zuvor. Also erhalten wir einen zufälligen Index für das Array. Und wir müssen es in eine Ganzzahl umwandeln, da Indizes keine Floats sein können. Also kann ich Anrufe machen Punktlänge. Und jetzt wird
es deswegen eine ganze Zahl sein und es wird funktionieren. Jetzt gilt das Gleiche für den anderen. Sie können dafür auch zwei verschiedene Strahlen verwenden. Oder Sie können manuell wählen, welche Farben Sie möchten. Aber ich werde es zufällig halten. Und dann wird es hier gleich bleiben. Und die Füllung wird diesen Farbinterpolator annehmen. Wenn ich das jetzt mache, sehen
wir mehr Farben. Jetzt sind einige dieser Farben wie
diese Filmfarbe oder diese dunkelgrüne Farbe nicht in meinem Array, sondern weil wir eine Farbe erhalten und sie
interpolieren, erstellen Sie einen Farbverlauf von dieser Farbe zur zweiten Farbe. Es packt alles, was in der Mitte zwischen diesen Farben ist. Sagen wir also, ich gehe von Pink zu Blau, dann bekomme ich auf jeden Fall mehr Filmfarben. Dies und dieses ist definitiv etwas, das von Pink zu Orange oder Gelb reicht. Und diese Art der Farbstoffrepletion ändert sich basierend auf Ihrem Farbmodus. Wenn wir also den Farbmodus auf etwas wie HSB ändern, sagen wir mal. Und dann führe ich das aus, wir werden eine andere Reihe von Farben bekommen. Der Grund dafür ist, dass es nur die Geschwindigkeit um das Farbrad geht. Zwischen den beiden Farben ist also nicht unbedingt das, was man als Anhäufung dieser beiden Farben betrachten würde. Also vorher mit RGB, wenn ich Rot und Blau nehme
, werde ich Violett dazwischen bekommen. Im HSB-Modus gehen
wir jedoch durch das Farbrad. Der einzige Zweck dieser Technik besteht darin, Ihnen zu zeigen, dass Sie die Zufallsmethode verwenden können, um mit der Farbinterpolationsmethode eine Reihe von Farben aus nur fünf Farben zu erhalten, was ihr ein bisschen mehr Interesse gibt als die normale eine Reihe von Farben, die Sie wählen. Also gehe ich zurück zu
und du kannst sehen, wie sich die Stimmung ändert, selbst wenn ich sie von einem Modus in einen anderen ändere. Okay, anstatt es so zu machen, lassen Sie uns das Beispiel fortsetzen,
das nicht unbedingt wichtig ist, damit Sie diese Lektion lernen, aber ich wollte, dass dies ein vollständiges Beispiel ist, das Ihnen zeigt, wie ich es benutze Farbinterpolation oder wie ich potenziell Farbinterpolation in meinen Designs verwenden würde. Eine Sache, die ich mit diesem Beispiel gemacht habe, ist, einen Zufallswert zu erhalten. Ich nenne es einfach zufällig, weil sie bereits R als Radius haben. Und dann initialisiere ich es hier drüben. Und weil es eine Ganzzahl ist, werde
ich zufällig in eine ganze Zahl umwandeln. Und ich will fünf verschiedene Formen. Also benutze ich einfach fünf. Also bekomme ich 0 bis vier. Und jetzt hier unten in der Anzeigemethode überprüfe
ich, anstatt nur den Kreis zu verwenden , ob zufällig. Ist gleich 0. Und ich will eine andere Form. Und dann sonst, wenn Zufall gleich 1 oder Zufall gleich 4 ist. Es sind also eigentlich keine fünf Formen, aber ich würde fünf Formen in Betracht ziehen, nur weil ich möchte, dass die Wahrscheinlichkeit, einen Kreis zu bekommen, höher ist. Und ich habe mich entschieden, ob es eins oder vier ist, f gleich zwei und dann drei. Also ein Freund m ist gleich 0, ich erstelle einen Bogen. Und es wird ein x und y sein. Eigentlich ist es statt x und y, denn später werde ich es auch verschieben. Ich werde drängen. Die Stile werden hinzugefügt eine Push- und Pop-Methode. Verwenden Sie „Übersetzen“ und „Drehen“. Translate wird die Position jeder dieser Formen definieren, da wir jetzt nur 00 für jede dieser Positionen
verwenden können . Und dann nimmt Kunst zuerst die X- und Y-Position und nimmt dann den Durchmesser, die Breite und die Höhe an. Also benutze ich einfach den Radius wie mit dem Kreis für beide, weil ich möchte, dass es ein Kreis ist. Ich will nicht, dass es eine Ellipse ist. Und dann gehe ich von 0 nach Pi, weil diese letzten Argumente
der Startwinkel und der letzte Winkel sind oder wo der Winkel enden wird. sich also einen Kreis vor, der zwei Linien senkrecht zueinander hat, die sich in der Mitte des Kreises kreuzen. Stellen Sie sich also vor, die Ostseite wäre dieser Punkt, der Startwinkel. Es fängt also immer von dort an. Also gehe ich von 0 nach Pi, was die Hälfte dieses Kreises bedeutet. Also hier zeichnen wir einen halben Kreis. Und dann werde
ich das Gleiche für den Anfang machen. Und dann gehe
ich für die Sekunde von 0. Dieses Mal ziehe ich drei Viertel des Kreises. Das wird also Pi sein, das ist die Hälfte
und dann der halbe Pi, was ein Viertel des Kreises ist. Und so haben wir drei Viertel. Schließlich ziehe ich eine Grenze. Und diese Linie möchte ich, dass sie von einer Art
wie dem Zeichnen der horizontalen Linie auf einem Kreis abgeht . Also gehe ich vom Radius geteilt durch zwei, weil ich so verhalte, als wäre dies der Durchmesser
, den ich hier einfach Durchmesser nennen sollte, aber es ist nur eine Gewohnheit Nashorn. Also r geteilt durch zwei und r geteilt durch zwei. Und das ist alles, was wir dafür brauchen. Wenn ich also jetzt gehe und das durchführe, werden
wir sehen, dass wir eine Vielzahl von Formen haben. Wir haben also drei Viertel einen Kreis, wir haben Halbkreise, wir haben volle Kreise und wir haben diese Linien für die Linien eigentlich für alles. Ich will keine Füllung. Ich benutze stattdessen nur einen Strich, weil ich ein anderes Bild haben möchte. Und lassen Sie uns das Schlaganfallgewicht zu einem großen Gewicht machen, also 15. Und dann mache ich auch die Strichkappe ins Quadrat. Denn für die Leinen werden sie runde Kappen haben. Ich möchte sie in Quadrat umstellen. Es ist natürlich nicht wichtig. Und dann mache ich auch keine Füllung. Und weil wir hier viele Stile haben, können
wir Stil machen. Und ich kann das alles einfach von hier in der Zeit hier entfernen. Und wir können sogar innerhalb der Push- und Pop-Methoden einfärben. Also kann ich einfach hier stylen. Und wenn ich das jetzt führe, werden
wir tatsächlich ein schöneres Design haben. Aber eine andere Sache, die ich dazu hinzufügen werde , die es Spaß machen wird, ist eine Animation. Wir können diese Animation jedoch nicht machen, da wir sie
erst sehen können , wenn ich die Kollisionserkennung gemacht habe, die wir zuvor gemacht haben. Ich zeige dir zuerst die Animation. Ich zeige dir, wie das nicht gut aussehen wird. Für jede Animation. Wir brauchen einen Winkel und die Geschwindigkeit. Das wird also Winkel sein. Und dann nenne ich es einfach eine Geschwindigkeit für die Winkelgeschwindigkeit. Und dann definiere ich sie hier drüben. Es wird also Winkel sein. Und der Grund, warum ich es hier definiere, weil ich nicht möchte, dass sie alle aus demselben Blickwinkel beginnen. Ich möchte für jeden von ihnen eine zufällige Rotation haben. Also werde ich zufällige 2 Pi machen. Das gibt mir also einen Zufallswert von 0 bis zwei Pi. Also voller Kreis im Grunde. Und dann eine Geschwindigkeit. Wird auch ein Zufallswert sein, der von minus 0,52,5 liegen wird. Und jetzt hier drüben in der Rotation oder im Übersetzungsbereich werde
ich auch gedreht oder dieser
Transformationsabschnitt dreht ihn um Winkel und dann bewegt sich der Winkel oder wird aktualisiert und das Update
-Methode wird durch die Geschwindigkeit aktualisiert. Und jetzt rufen wir einfach Update hier an. Jetzt zeigen alle Methoden, die wir verwenden, ein Update und dann den Stil an, den wir darin verwenden. Wenn ich das jetzt renne, dreht sich
alles und ich muss das zurücksetzen. Also danke Runde. Jetzt kann ich tatsächlich sehen, wie sie sich drehen und nicht übereinander zeichnen, da was sich dreht, nicht trocknet, anstatt nur zurückzusetzen und zu drehen. Für mich ist das so cool. Es sieht aus, als würde eine Maschine arbeiten, aber ich denke, es sieht besser aus, wenn wir die Kollisionserkennung hinzufügen. Also machen wir das mit der Collides-Methode. Wie wir bereits sagten, wird es einen Booleschen Wert
als Bande zurückgeben , um einen Agenten zu nehmen, und ich rufe andere an. Und dann greifen wir die Entfernung von x und y zu anderen Punkt y,
was bedeutet, dass die Mitte zur Mitte liegt. Und dann sage ich, wenn die Entfernung kleiner ist als der Radius plus der andere Radius, muss er
tatsächlich durch zwei geteilt werden da wir hier den Radius als Durchmesser verwenden. Dies ist der Zeitpunkt, an dem die Dinge irgendwie
chaotisch werden , weil ich die falsche Variable wähle, wahr
zurückgebe und dann anderweitig oder was auch immer passiert, einfach falsch mache. Dies stellt sicher, dass wir
einen Wert zurückgeben , unabhängig davon, ob dieser Wert zugeordnet ist oder nicht. Und dann gehe ich hier rüber und definiere einen Maximalwert. Hier oben. Ich zähle einfach MAX. Und lass uns 50 machen. Obwohl für die Bildschirmgröße 50 ein bisschen viel sein wird. Also lasst uns das tun, ja, lasst es uns auf 20 reduzieren. Der Grund, warum ich die maximale Anzahl hinzugefügt habe, ist, dass ich nicht möchte dass
sie diesen maximalen Betrag hinzufügt oder überschreitet. Ich möchte nicht, dass es mehr als 20 Kreise hinzufügt, sagen
wir mal, oder Formen. Ich sage also, dass die Punktgröße der Agenten weniger als die
maximale Anzahl ist , dann möchte ich, dass Sie einen neuen Agenten hinzufügen. Wenn es also diesen Betrag erreicht, die maximale Anzahl, möchte ich nicht mehr, dass es Agenten hinzufügt. Und dann machen wir eine for-Schleife. Für Integer ist ich gleich 0, ich bin kleiner als die Punktgröße der Agenten, weil wir ArrayLists verwenden, kein Array, also verwenden wir keine Länge. Und dann habe ich plus plus. Also erhöhen wir wie gewohnt um eins. Und dann werde ich hier j als letzten Agenten definieren. Eigentlich werde ich hier
drüben nur den Agenten dieser Größe durchlaufen, bis auf den letzten,
denn der letzte wird j sein. Wenn
also Agenten an Position j mit Agenten oder einem Agenten an Position
kollidieren ich dann entferne ich es. Und hier ist die maximale Anzahl nützlich, denn wenn sie alle kollidieren, werden wir hier nichts haben. Es geht also nicht nur darum sicherzustellen, dass wir die maximale Anzahl nicht
überschreiten, sondern auch um sicherzustellen, dass wir diese maximale Anzahl erreichen. Wir kommen nicht nur zu, weil die meisten von ihnen kollidierten und wir sie dann entfernen mussten. Und wenn ich das jetzt mache, werden
wir sehen, dass sie nicht kollidieren. Eigentlich liegt der Grund, warum sie kollidieren, am Schlaggewicht. Also können wir das hier hinzufügen. Ich kann einfach plus das Schlaggewicht sagen, wenn ich es woanders definiere. Sagen wir das also. Ich nenne einfach Stroke W. Und dann sage ich hier einfach, Schlaganfall w gleich 15 ist. Und wir müssen es auch hier oben definieren. Und jetzt kann ich es hier hinzufügen. Wir können einfach plus 15 tun, wenn Sie wissen, dass Sie es immer sind, es wird ein konstanter Wert sein. Und natürlich wird es hier ein anderer Pfeil sein, denn wenn Sie möchten, dass sie zufällige Strichgewichte haben, ist
dies der richtige Weg. Plus Schlaganfallgewicht für dieses und dann plus anderes Schlaganfallgewicht für Erwachsene für dieses. Es nimmt also das richtige Schlaggewicht für jeden einzelnen davon. Und jetzt werden wir keine Kollision sehen. Da der Bildschirm zu klein ist, werden
wir lange nicht viel sehen. Lassen Sie uns das also ein bisschen größer machen. Eigentlich verdoppeln. Und jetzt
gibt es jedes Mal, wenn Sie es ausführen , keine Kollision und es dreht sich und es erzeugt schöne Bilder. Und weil wir eine zufällige Startrotation haben, können
Sie sehen, dass so
etwas nicht an der gleichen Position beginnt wie diese oder bei derselben Rotation diese ist. Und weil sie eine zufällige Geschwindigkeit haben, werden
Sie eine andere Geschwindigkeit sehen. Und der Grund, warum ich Linie verwendet habe,
als auch weil es beim Drehen auch einen Kreis erzeugt, verleiht ihm ein kohäsiveres Aussehen, aber es hat immer noch einige Variationen. Und dann können Sie die Animation speichern, wenn Sie möchten. Gewalt, sagen wir, eine Bildrate beträgt weniger als
zehnhundert, zehnhundert Bilder bei, wenn Sie die Bildrate hier bei, sagen
wir 30 Frames pro Sekunde oder 24, dann können Sie angeben, oder Sie können Berechne, wie viele Minuten du willst und wie viele Frames du willst. Und stellen Sie sicher, dass Sie weniger oder gleich sind, wenn Sie die genaue Anzahl der gewünschten Frames eingeben. Und dann speichern Sie Frame. Und dann geben Sie aus, wenn Sie es in einen Ordner einfügen möchten, der als Ausgabe für die Organisation bezeichnet wird. Und dann exportiere ich sie einfach gerne als PNGs. Und du kannst es sonst machen. Beenden. Auf diese Weise. Es wird von 0 auf 1000 Frames gehen. Es wird alle diese Frames mit den Ziffern für diesen Rahmen speichern. Und wenn es fertig ist, wird
das nicht wahr sein. Das wird also wahr sein und dann wird es aussteigen. Und exit wird einfach
diesen Vorschaubildschirm schließen , der nur über diese Färbetechnik Bescheid wissen muss. In der nächsten Lektion sprechen
wir mehr über Textur, insbesondere Hintergrundbilder.
5. Textur 02: Hintergrundbilder: Die zweite Texturtechnik, über die wir sprechen werden, ist extrem einfach. Und es fügt Ihrem Design nur ein Hintergrundbild hinzu. Wenn ich dieses Kunstwerk in den sozialen Medien einfüge, ist
eine der interessanten Fragen, die ich habe, woher hast du diesen Hintergrund? Und ich hätte nie gedacht, dass eine so einfache Sache wie das Hinzufügen eines Hintergrundbildes eines alten Papiers oder eines Papiers für das Kunstwerk von Bedeutung wäre. Aber ich habe dies als eine der Texturierungstechniken gewählt, weil ich es für
interessant halte , den Mischmodus zu verwenden, um zu sehen, wie das Kunstwerk mit dem Hintergrund interagiert. Das Beispiel wird also etwas komplex sein. Wir werden 3D-Rauschen verwenden. Also im Grunde genommen was wir geschaffen haben und fließend den Kurs rauschen. Anstatt es jedoch nur auf einen normalen Hintergrund, einen soliden Hintergrund, stellen, werden
wir es auf ein Hintergrundbild legen, zu stellen, werden
wir es auf ein Hintergrundbild legen,
das es ein wenig erhöht und es
eher wie ein von Hand erstelltes Zeichnen macht . Ich habe mich speziell für 3D-Rauschen entschieden, weil es eher
so aussieht , als hättest du das gemalt oder mit Stift auf Papier gezeichnet. Aber wir verwenden generative Kunst, die geschaffen wurde. Nun, weil es darum geht, Hintergrundbilder hinzuzufügen. Wir werden damit beginnen, das Bild hinzuzufügen. Ich habe ein Bild von einer Website namens Unsplash.com ausgewählt, auf der
Sie viele urheberrechtsfreie Bilder und hochwertige Bilder erhalten können. Also habe ich Papierhintergründe recherchiert
und habe eine Zeit, und das werden wir heute mit diesem Kunstwerk verwenden. Also legen wir es in den Ordner. Im Skizzenordner. Fügen wir einen Datenordner hinzu. Und ich ziehe das hier hin. Und ich habe es in Paper Underscore One umbenannt. Es ist also viel einfacher für uns, es später zu importieren. Also verwenden wir P image, und ich nenne es einfach Hintergrund oder kurz BG. Und wir werden es hier drüben initialisieren. Hintergrund wird also
ein Bild laden und das Bild wird Papierunterstrich mit einem Punkt JPEG sein. Und jetzt werden wir die Größe auch auf Breite und Höhe ändern. Dies wird das Bild definitiv verzerren, weil wir
ein vertikales Papier haben und das wird es zerquetschen. Wenn wir es also jetzt zeigen, werden
Sie feststellen, dass einige der Details ein bisschen anders sind. Wenn Sie zu dem Originalbild zurückkehren, das wir geöffnet haben, ist das hier kein großes Problem, da die Details nicht groß sind, sodass es die Verzerrung nicht wirklich so sehr zeigt. Aber wenn es dich so sehr stört, dann ändere die Größe pro Verhältnis. Wenn Sie das ursprüngliche Verhältnis des Bildes kennen. Und wenn Sie jetzt etwas darüber zeichnen möchten, sagen
wir mal, ich möchte eine Ellipse zeichnen. Und legen wir es in die Mitte des Bildschirms. Und ich gebe ihm eine Breite von 100 mal 100. Und ich füge das Bild auch hier hinzu, nur um es zurückzusetzen. Also statt Hintergrund brauchen
Sie den Hintergrund nicht mehr. Wir werden das Bild einfach benutzen, um hier etwas zurückzusetzen. Und wenn ich das jetzt durchführe, können
wir das darüber hinaus sehen. Wenn ich diese Füllung jetzt ändere, sagen wir rot. Und dann benutze ich den Mischmodus. Bevor du den Mischmodus verwendest, zeige
ich es dir zuerst. Das ist also der normale. Und wenn ich dann den Mischmodus zum Multiplizieren verwende, gibt es mehrere Mischmodi. Der Standardwert ist also Blend und dann der Rest, den Sie in der Dokumentation finden können. Es gibt also einen Multiplikationsbildschirm und wenn Sie es nicht wissen, behält
multiplizieren die dunklen Farben bei und entfernt jedes Weiß und der Bildschirm tut das Gegenteil. Wenn Sie also ein Schwarz-Weiß-Bild haben und
multiplizieren, werden Sie nur die schwarzen Teile des Bildes finden. Und wenn Sie dann mit demselben Bild einen Bildschirm
erstellen, werden Sie feststellen, dass nur die weißen Teile des Bildes angezeigt werden. Jetzt wird dies dies ein bisschen dunkler machen, basierend auf der Farbe dahinter. Und weil unsere Hintergründe ein bisschen dunkel sind, wird
es ein dunkleres Rot machen. Jetzt ist das Problem dabei, dass sich der Mischmodus jedes Mal für alles multipliziert. Also wenn ich den Mischmodus mache. Jetzt können Sie sehen, dass dies ein bisschen durchsichtig ist, damit wir die Textur dahinter sehen können. Und das Bild erhält nicht den gleichen Mischmodus wie die Füllung oder die Ellipse hier drüben, weil ich auf eine Mischung zurückgegriffen habe. Beginnen wir jetzt mit dem eigentlichen Beispiel. Also werde ich all das jetzt entfernen wir herausgefunden haben, was wir zu diesem Zeitpunkt tun werden, wir es mit dem 3D-Rauschen machen. Anstelle dieser Ellipse erstellen
wir also Scheitelpunkte sind Ebenen, die mit 3D-Rauschen über den Bildschirm laufen. Also nenne ich es einfach Agent. Und wir werden diese Klasse erstellen. In diesem Beispiel verwenden wir 3D-Rauschen. Daher müssen wir die Position,
Größe und Geschwindigkeit definieren , damit sich die Punkte mit Rauschen bewegen können. In der Klasse fügen wir diese Eigenschaften hinzu. Ich mache einfach x, y. Und weil wir 3D-Rauschen verwenden, verwenden
wir auch z oder z. Und dann mache ich deine Float-Größe und Geschwindigkeit. Die Größe entspricht also der Größe der Punkte, die sich bewegen. Und die Geschwindigkeit wird ihre Geschwindigkeit oder Geschwindigkeit sein. Um sie zu initialisieren, füge ich dem Agenten einige Parameter hinzu. Also benutze ich das x und y, weil ich sie außerhalb der Klasse definieren möchte. Weisen Sie nun x zu, was x sein wird und was auch immer y sein wird. Und dann wird für z und z ein Zufallswert sein. Und lass es uns von 0 auf 208 schaffen. Normalerweise gehe ich sehr klein mit dem Wert von C mit dreidimensionalem Rauschen. Und dann undefinierte Größe in Geschwindigkeiten. Die Größe wird also ein Zufallswert sein. Lass es uns von 0,5 bis drei schaffen. Je Mitte sie sind, desto mehr werden sie Stiftstrichen ähneln. Und dann definieren oder initialisieren wir Geschwindigkeiten auch als Zufallswert, als Zufallswert von eins bis fünf. Und dann habe ich ein Farbray hinzugefügt. Sie können das gleiche Farbray verwenden, das wir seit
Beginn dieser Lektionen oder seit Beginn des Kurses verwenden . Und ich werde tun, was ich getan habe, bevor ich
einen zufälligen Index aus dem Calls-Array verwende , das ich gerade definiert habe. Das wird also eine ganze Zahl sein. Aus den Zufallswerten. Sie werden von 0 zu Calls Punktlänge wechseln. Und wir müssen hier Farbe definieren. Wählen Sie also die Farbe oder wenn Sie Farbe eingeben. Und jetzt definieren wir die Stile. Manchmal halte ich Stile gerne von der Anzeigemethode getrennt oder von der Form getrennt, die ich in der Anzeigemethode definieren werde. Vor allem, wenn ich viele Dinge im Stil habe. Aber hier werden wir nur zwei Dinge haben. Das erste wird also das Schlaganfallgewicht sein. Und das wird die Größe sein. So wie die Größe eines Stiftes. Und dann streicheln wir. Und wir werden hier nicht füllen, weil wir es nicht brauchen
werden und es nicht nötig ist, dass es hier drüben sein muss. Es wird also nicht jedes Mal aufgerufen, wenn wir einen Agenten erstellen. Und jetzt wird das Innere dieses Stücks unseren Standpunkt ziehen. Und wir werden auch den Stil benutzen. Und der Punkt wird ein x und y sein. Sehr einfach. Und schließlich, eigentlich, das zweitletzte, was wir in der Klasse erstellen werden, wird
das die Update-Methode sein. Hier werden wir also den Lärm erzeugen. Und das Geräusch wird die Rotation dieser Punkte sein. Es wird also der Blickwinkel sein. Und das sind x, y und z. Wenn ich es
jedoch einfach so verwende, erzeugt
Rauschen Werte von 0 bis eins, und diese sind sehr klein. Also müssen wir es mit der Geräuschstärke multiplizieren. Und wenn Sie jemals Lust haben dieser Erklärung ist ein bisschen schwer zu folgen. Oder wenn Sie das Gefühl haben, dass dies ein bisschen zu fortgeschritten für Sie ist, dann habe ich mich im fließenden Geräuschkurs tiefer darauf eingelassen. Wenn Sie also mehr über Rauschen und seine Funktion erfahren möchten, würde ich vorschlagen, dass Sie zuerst den Strömungsrauschkurs
beobachten und dann wieder hierher kommen. Kurz gesagt, die Geräuschstärke wird sich vervielfachen, den Wert hier ist, und sie wird sich beschweren, dass er nicht existiert. Also werden wir hier globale Variablen
oder tatsächlich globale Konstanten erstellen , weil ich weiß, dass sich die Rauschstärke nicht ändern wird. Also werde ich hier drüben kreieren. Aber bevor wir erstellt haben und müssen auch x und y durch Rauschskala teilen. Und der Grund, warum ich das mache, ist, dass die Werte oder die Rauschfunktion viele Werte erzeugen. Und die Geräuschskala wird einen Teil dieser Welle skalieren und nutzen. Es ist also so, als würde man auf einen Teil einer Welle zoomen. Wenn Sie also Berge aus der Ferne betrachten, werden
Sie viele Gipfel und Täler sehen. Aber wenn du näher kommst, siehst du nur den Raum, in dem du dich befindest. Und NoSQL macht genau das. Wenn ich also hier rübergehe, können
wir Geräuschskala und Geräuschstärke definieren. Und wir müssen Float nicht wiederholen, wir können einfach Komma machen und dann werden wir der Geräuschstärke einen anderen Wert anwenden oder zuweisen. Also habe ich Rauschskala zugewiesen, den Wert von 5049 Stärke, ich habe 100 gemacht. Diese Werte können Sie beliebig ändern. Je größer die Geräuschskala ist, desto glatter ist das Geräusch. Und je größer als eine Stärke ist, desto mehr Rotation werden Sie bekommen, weil wir sie hier mit Winkel verwenden. Wenn sich die Rauschskala also in einen Teil der Welle bewegt oder zoomt, erhöht
die Rauschstärke die Höhe. Und der niedrige Teil dieser Welle kann x um
Kosinus des Winkels erhöhen und ihn dann mit Geschwindigkeit multiplizieren. Geschwindigkeit wird sich also wie der Radius verhalten, da dies Werte von negativ eins zu eins
erzeugen wird
und wir einem größeren Wert multiplizieren müssen. Und dann wird für y Sinus sein, der Winkel multipliziert mit Geschwindigkeit. Und wir erhöhen den Wert z auch um etwa 0,005. Auch hier können Sie diesen Wert so viel ändern, wie Sie möchten, bis Sie die Werte gefunden haben, die Ihnen gefallen oder das Aussehen, das Ihnen gefällt. Jetzt ist die letzte Methode, die wir erstellen werden, das Gleichgewicht. Jetzt springt und wird nicht viel tun. Gerade jetzt. Es wird nur einschränken, dass die X- und
Y-Werte oder die Punkte über die Umfänge der Leinwände hinausgehen. Was wir hier tun können, ist, x von 0 auf Breite zu beschränken. Und warum von 0 bis Höhe. Und Sie werden sehen, was das tut, wenn wir unser Agenten-Array erstellen. Das ist also alles, was wir im Moment innerhalb unserer Agentenklasse brauchen.
Wir werden später darauf zurückgehen, um ein paar Dinge hinzuzufügen, die das letzte Beispiel bilden werden. Lassen Sie uns vorerst einfach eine Reihe von Agenten erstellen. Ich nenne sie einfach Agenten. Und ich zähle sie. Fangen wir mit 10 an. Jetzt hier drin werden wir initialisieren, Instanzen dieser Agentenklasse
erstellen. Und ein Wiederhören im Konstruktor haben wir nur x und y. Also werde ich einfach zufällig von 0 bis Breite machen, zufällig von 0 bis Höhe vorerst. Und dann machen wir hier unten vier Agenten. Und Agenten werden es und Datum
anzeigen. Und anstatt das oder zu erstellen, anstatt die Grenzen im Hauptregister aufzurufen, rufe
ich es einfach hier auf. Genau wie wir es mit Stil im Display gemacht haben. Ich habe das Gleiche innerhalb des Updates gemacht. Wenn ich das jetzt mache, können
wir unser 3D-Rauschen sehen. Und wie Sie sehen können, hörte es auf, sich auf der Y-Achse auf die 0 zu bewegen, und es bewegte sich direkt über diesen Teil. Wann immer es in den Negativen ist, wird
es immer 0 sein. Und wann immer es über die Höhe hinausgeht, wird
es immer die Höhe sein. Und deshalb werden Sie diese Punkte an den Grenzen sehen. Und wenn Sie sie lange behalten, sehen
Sie am Ende eine Grenze mit den verschiedenen Farben, die wir haben. Und jetzt, da die Geschwindigkeit zu hoch ist, sehen
wir tatsächlich, dass die Punkte keine glatte Linie sehen. Das ist in Ordnung. Wir werden das später beheben, wenn wir das Beispiel beenden. Wenn wir also zur Registerkarte Main zurückkehren, erstellen wir
jetzt ein Raster. Und anstatt die Grenzen
zwischen dem Nullpunkt und der Breite und Höhe der Leinwand zu erstellen . Wir werden sie in den Zellen unseres Gitters beschränken. Also erstelle ich ein Raster und dann
wird jeder Punkt seine Position in einer der Zellen einnehmen. Und dann wird es innenliegend eingeschränkt sein. Um dies zu tun, erstellen
wir eine Methode, die ich einen Nettograd aufrufe. Dies wird also die Positionen für uns selbst initialisieren. Dies wird für Integer n gleich 0 sein. Und dann wird n das Gebiet oder weniger als das Gebiet sein. Der Grund, warum ich anstelle der Anzahl der Spalten und
der Anzahl der Zeilen nach Bereich gehe , ist, dass ich keine Schleifen verschachteln möchte. Ich möchte die Anzahl der Flips so weit wie möglich reduzieren. Also werde ich eine Variable namens area initialisieren, und das wird bis zur Stärke von 2 gezählt, im Grunde die Breite multipliziert mit der Höhe. Die Anzahl der Zeilen multipliziert es also mit der Anzahl der Spalten. Und das wird auch hier sein. Die Anzahl der Agenten wird also die gleiche Anzahl von Zellen in unserem Raster aufweisen. Jetzt kann ich es machen und ich kann auch J machen. Also werde ich n Modulo-Zählungen sein, und dann hier drüben wird
n durch Zählung geteilt. Für die Spalten, also von 0 bis zur Breite, gehen
wir von 0 zur Anzahl der Spalten erhalten den Rest der Teilung von N durch die Zählung. Dann bekommen wir Zahlen von 0 bis zum Count. Und dann teilen
wir für die Zeilen n, was der Bereich durch die Anzahl der Zeilen ist. Wir haben das Gegenteil von dem getan, was wir getan haben, um das Gebiet zu schaffen. Und das gibt uns alle Positionen von 0 bis zur Höhe. Und um es zu initialisieren, erstelle
ich eine Reihe von Positionen. Ich erstelle es hier drüben. Und das wird ein p-Vektor sein. Und der Grund, warum ich einen p-Vektor erstelle, besteht darin, zu vermeiden Arrays eins für x und eins für y geschwemmt werden soll. Und das wird auch der Bereich sein oder die Länge eines Bereichs haben. Und dann werde ich hier drüben die Position bei N machen, die
einem neuen p-Vektor entspricht, wenn ich Zellbreite
multipliziert und j es mit einer Zellhöhe multipliziere. Und jetzt definieren wir diese. Also wenn ich hier rauf gehe und ich die Zellenbreite schwebe und die Höhe verkaufe. Und dann mache ich hier drin die Zellenbreite gleich Breite geteilt durch den Float der Zählungen und dann die Höhe dividiert durch den Zählschwimmer. Und wir werden Float brauchen, weil wir eine genauere Berechnung benötigen. Denn wenn sie das nicht tun und dies eine Ganzzahl ist, ist die Breite
f nicht durch die Anzahl teilbar, dann werden wir Lücken in unserem Raster sehen. Jetzt, da wir das haben, sollten
wir hier keinen Fehler bekommen. Und ich kann den Zuschuss hier initialisieren. Lassen Sie uns auch Margen hinzufügen. Wenn ich es jetzt mache, wird
das Beste an den Rändern der Leinwand sein und das sieht nicht gut aus. Also füge ich die Margen hier hinzu. Jetzt mach einfach 50. Jetzt werden Zellenbreite und Verkaufshöhe nicht nur die Breite geteilt durch die Anzahl sein. Es wird Breite abzüglich der beiden Ränder sein. Marge multipliziert mit zwei. Auf diese Weise subtrahieren wir die Ränder tatsächlich von der Breite und Höhe. Wir erstellen also eine neue Breite und Höhe. Anstatt nun eine zufällige Breite und Höhe zu wählen, möchte
ich, dass jeder der Agenten von jeder Zelle aus beginnt. Dafür werden wir einfach alles benutzen, was wir hier initialisiert haben. Also haben wir die Punkte bereits erstellt. Wir können es einfach hier benutzen. Das ist Position I dot x und dann Position I dot y. Wenn ich das ausführe, werden
wir Punkte sehen, die von jeder Zelle ausgehen. Wir sehen es jedoch nicht sehr gut. Und wir müssen auch pushen, denn wenn Sie es merken, hat
alles von hier aus angefangen und dann hier anhalten. Das liegt daran, dass wir die Ränder gelöscht haben. Wir müssen sie hierher schieben. Also wenn ich plus Marge mache, und dann auch hier drüben, plus Marge. Jetzt werden wir es besser sehen und müssen dies auch in Marge,
Marge und dann Breite minus Marge ändern , oder? Marge. Wir machen also von Marge und dann zwei Minus-Marge, denn jetzt sind die Grenzen tatsächlich an den Rändern. Wenn ich das also noch einmal durchführe, können
wir es klar sehen. Wir können den Spielraum sehen, weil er hier anhält. Und jetzt können Sie sehen, wie die Grenzen tatsächlich perfekt funktionieren. Jetzt ist der lustige Teil darin, die Einschränkungen
hier zu ändern , um die Punkte innerhalb jeder Zelle einzuschränken. Um das auch noch einmal zu tun, um noch ein paar Parameter hinzuzufügen. Die erste ist die Zellenbreite und die Verkaufshöhe natürlich, denn das sind unsere Gitterzellen. Und wir fügen es auch hier hinzu, damit wir es von der Hauptregisterkarte
aus, vom Raster oder von diesem Teil hier aus übergeben können. Was auch immer wir für das Raster initialisiert haben, und das wird unter
wissenschaftlicher Zellenbreite und Unterstrich der Zellenhöhe liegen. Und wir können sie hier drüben initialisieren. Also werden wir die Zellenbreite nicht unterstreichen. Und das Gleiche für die Zellhöhe. Denn das gibt uns nur die Silhouette und Verkaufshöhe, aber auch die Positionen brauchen. Wo auch immer wir hier verwenden, also gibt uns das die Ecken der Zellen und dann geben uns die anderen beiden die Breite und Höhe. Also müssen wir das hinzufügen. Jetzt können wir sie hier hinzufügen. Also gebe ich ihm die Zellenbreite und gebe ihm die Zellenhöhe. Wenn wir jetzt runtergehen, kann
ich die Zellenbreite hier verwenden. Und verkaufe die Höhe hier drüben, weil sich x und y bewegen und wir sie
für die Positionen der Punkte verwenden , während sie sich bewegen Wir müssen etwas anderes als x und
y verwenden , weil diese nicht funktionieren werden, da sie seit ihnen nicht funktionieren werden bewegen sich ständig. Wir müssen also nur den x-Wert,
den Start-x-Wert
, den wir hier übergeben, und den y-Wert starten. Und wir lagern sie in Zelle x und verkaufen y. Und die, und die, die wir hier kreieren können. Das wird also Zelle X sein und y verkaufen. Jetzt greifen wir
also die Anfangswerte. Jetzt haben wir sie hier drüben. Jetzt können wir das bequem bewegen, ohne uns um die erste Position sorgen zu müssen. Und dann haben wir die Zellenbreite Q hinzugefügt, was auch immer x und y sind. Und dann werden wir jetzt Zelle X verwenden und diese Weine verkaufen. Und wenn ich das jetzt durchführe, werden
wir sehen, dass sie in jeder Zelle eingeschränkt sind. Es sieht schon gut aus, aber wir können auch, also sehen sie schon gut aus, aber wir können auch ein paar Dinge ändern. Anstatt Punkt werden
wir also einen Scheitelpunkt verwenden, um sie verbundener aussehen zu lassen. Und anstatt nur Punkte zu durcheinander zu bringen, wie sie gerade sind, können
Sie die Punkte sehen, weil sie sich nicht wirklich miteinander verbinden. Wenn wir jedoch die Begin-Shape und die Form mit Scheitelpunkten
verwenden , können wir sie verbinden, damit sie eher wie eine Linie aussehen. Bevor wir etwas tun, lassen Sie es uns mit dem Bild zurücksetzen. Fügen wir das Hintergrundbild hinzu. Jetzt kannst du sehen, wie sie sich bewegen. Wir können auch einige Anleitungen hinzufügen, damit Sie sehen können, wo die Zellen beginnen und enden. Und das schafft nur ein normales Raster. Ich nenne sie Guides. Und dann gebe ich ihnen eine X- und
Y-Zählung für die Anzahl der Spalten und Zeilen. Und dann erstelle ich lokale Variablen für Area. Und dann erstelle ich auch lokale Zellenbreite und -höhe. Aber sie werden gleich sein. Also hole ich mir das hier drüben. Aber statt zählen wird x count sein. Und für die Zellenhöhe wird
es gleich sein, aber y zählt, und das wird Höhe sein. Und dann benutze ich dieselbe Schleife, die wir hier benutzt haben. Aber anstatt einen neuen p-Vektor zu erstellen, verwende
ich nur eine Rechteckfunktion, die dieselbe X- und Y-Position hat,
aber dann weiß ich auch, dass sie eine Zellbreite und -höhe haben. Jetzt müssen wir es hier anrufen. Und es wird eine Zählung erfordern. Und weil ich hier drüben zählen als Anzahl der Zeilen und Spalten verwende
, verwende ich es einfach hier. Ich füge dem einen Schlaganfall hinzu. Und ich benutze Persian Pop nur damit es meine Agenten nicht beeinflusst. Und wir können es einfach schwarz machen. Und ich gebe ihm eine Kapazität von 50 Prozent. Und jetzt können wir es sehen. Ich füge
hier auch einen Mischmodus hinzu, damit du die Farben besser auf dem Papier sehen kannst. Und so sieht es eher wie ein echter Stift aus, der auf dem Papier schreibt. Wie gesagt, wir müssen entweder Push und Pop benutzen. Um die Stile zu verschieben, müssen Sie die Stile nur für die Punkte beschränken. Oder Sie können den Mischmodus hier für diese innerhalb dieses persischen Pop neu zuweisen. Und ich kann sehen, dass es ein bisschen dunkler ist, aber wir sehen nichts, weil wir das Bild hier zurücksetzen. Es bewegt sich also nur, anstatt es zu versuchen. Um es zu zeichnen, muss ich diesen Punkt ändern. Anstatt zu zeigen, erstelle
ich eine Schleife. Und ich zähle es. Und dann beginne ich auch Form und Form. Weil ich eine Linie mit Scheitelpunkten erstellen werde. Aber anstatt den Scheitelpunkt hierher zu legen, muss
ich ihn hier in die Update-Methode legen. Weil ich jeden Scheitelpunkt brauche, um eine andere x- und y-Position zu haben. Wenn ich es hier rüberlege, wird
es die gleiche x- und y-Position haben und dann werden sich die Dinge bewegen, also wird der Scheitelpunkt nicht aktualisiert. Und dann rufe ich die Update-Methode hier auf. Anstatt es also hier aufzurufen, können
wir einfach display verwenden und dass wir Stil und Update nennen. Und innerhalb des Updates wird
die Bounds-Methode aufgerufen und count wird hier ein Parameter sein. Also jetzt hier im Display kann
ich so etwas wie 100 Punkte machen. Wenn ich das jetzt durchführe, können
wir sehen, dass es eine Linie erstellt, aber es ist zu schnell, weil wir uns mit dieser Geschwindigkeit in sehr kleinen Räumen bewegen. Das erste, was ich gerne mache, wenn so etwas passiert,
ist, die Bildrate zu ändern und die Größe der Leinwand zu ändern. Wenn ich also etwas wie 1080 bis 1080 mache, sieht
man, dass die Form mehr verteilt ist oder die Zellenbreite etwas größer ist. Jetzt hat es mehr Platz zum Bewegen und dann kann ich die Bildrate reduzieren. Wenn ich also hier rübergehe und Bildrate machen kann, weil die Standard-Bildrate ist, glaube
ich 60 und ich werde sie auf 12 oder sogar auf 24 reduzieren . Aber auch 24 Stunden zu schnell. Sie können also entweder die Geschwindigkeit hier reduzieren. Wenn ich also von 0.1 tue, um 0,5 zu sagen, werden
Sie sehen, dass sich die Bewegung verlangsamt hat, aber dann müssen Sie viele der Parameter ändern,
da sich das Ändern dieser Geschwindigkeit auch auf das 3D-Rauschen auswirkt. Bring es also zurück auf eins zu fünf, und dann reduziere ich es einfach auf 12. Und ich mag es besser, wenn es eher wie eine Stop-Motion-Animation aussieht. Und dann kann ich das auch erhöhen, weil wir jetzt einen größeren Canvas haben, also reicht 100 nicht aus, um die Zellen auszufüllen. Also mache ich nur 500. Und jetzt werden wir sehen, dass es viel besser aussieht. Und damit es noch schöner aussieht, denn jetzt gehen deine Augen über den ganzen Bildschirm. Um die Bewegung Ihres Auges über die Leinwand zu begrenzen, können
wir einfach einige dieser Zellen ausfüllen. Um das zu tun, gehe
ich zurück zur Agentenklasse und erstelle eine zufällige Variable. Das rufe ich Rand an. Und es wird ein Zufallswert von 0 bis eins sein. Und dann innerhalb des Stils ist dies möglicherweise nicht der klügste Weg weil ich nur den Strich entfernen werde, weil ich nur die Strichfarbe verschieben werde, aber ich entferne die Instanz von
der Agent. Sie können es also entweder hier tun, damit Sie nicht alle Agenten initialisieren, aber ich mache hier einfach eine einfache Lösung, indem Sie einfach die Farbe des Strichs entfernen. Wenn ich also hier rübergehe und es tue, wenn ein Freund es ist, sagen
wir weniger als 0,7 oder 70%, dann habe ich eine Farbe. Ansonsten brauche ich den Schlaganfall oder ich brauche eigentlich keinen Schlaganfall. Und wenn ich dann Command T oder Control T auf einem PC drücke, formatieren Sie dies automatisch. Wenn ich das jetzt mache, können
wir sehen, dass nicht alle von ihnen tatsächlich ausgefüllt sind. Und so ist es weniger laut. Etwas, das wir
in der dritten Texturierungstechnik lernen werden, ist das Hinzufügen von Hintergrundelementen. Also habe ich hier schon etwas getan, das mit dieser Lektion zu tun hat. Und das ist, diese Guides zu erstellen und sie zu verlassen. Sie können diese Hilfslinien also entfernen, wenn Sie möchten, indem Sie dies einfach eliminieren. Aber es sieht nicht so schön aus, wenn man
es so sieht , weil man nicht weiß, warum es sich so verhält. Wenn Sie jedoch Ihre Guides verlassen, sieht es schöner aus, weil Sie jetzt verstehen, warum sie sich auf diese Weise bewegen oder warum sie in diesem Raum begrenzt sind, weil es tatsächlich Grenzen gibt, dass sie so bleiben. Jetzt können wir auch etwas anderes hinzufügen, und dies ist einer der Gründe, warum ich die Guides mit einem X- und Y-Konto erstellt Ich kann ein anderes Raster erstellen, aber dieses Mal
kann es das Vierfache des Kontos haben. Und ich kann ihm auch eine andere Farbe als das Array geben. Sagen wir, ich gebe ihm die zweite Farbe. Und ich schaffe es auch um 50 Uhr. Wenn ich das mache, wird es nicht richtig aussehen, weil wir es nicht so machen. Wir müssen x count und y count machen, oder tatsächlich werden sie beide x zählen. Ich werde auch die Farbe ändern, damit diese die erste Farbe aus dem Array ist. Oder eigentlich wollte ich, dass es das Gegenteil ist. Das Rosa wird also drin sein und dieses wird draußen sein. Und ich werde das vorher sagen, weil ich die größeren Zellen brauche, um die prominenteren Zellen zu sein, da diese den Bildschirm einschränken. Und dann kann ich auch dafür den Mischmodus machen. Jetzt können wir das Rosa besser sehen und das Blau besser sehen. Jetzt können wir mit Geräuschskala herumspielen. es also auf 1000 erhöhen
, je mehr Sie die Geräuschskala erhöhen, desto glatter wird das Design aussehen. Wenn ich also auf 2000 gehe, wirst du sehen, dass die Zeilen viel, viel glatter sind. Wenn wir auf 500 zurückkehren, werden
Sie feststellen, dass es mehr Rotationen gibt. Und wenn wir hier auf 60 sinken, gibt es weniger Rotationen. Also gehe ich einfach zurück zu 100 und du kannst damit herumspielen, wie du willst. Sie können auch mit der Geschwindigkeit oder den Schritten der Geschwindigkeit
des dritten Arguments im Rauschen spielen . So etwas wird also mehr Rotationen erzeugen. Und je langsamer es ist, wird
es viel weniger Rotation erzeugen. Sie können auch mit der Länge hier oder der Zählung bis zu den Scheitelpunkten herumspielen. Wenn wir also zu 16 gehen , wird es weniger prominent sein. Und wenn wir dann wieder auf 500 zurückgehen, werden wir mehr Scheitelpunkte bekommen und Sie werden das Geräusch ein bisschen mehr sehen können. Dies ist eigentlich eines meiner Lieblingsbeispiele für den Haufen , weil es mit dem Papierhintergrund natürlicher aussieht. Sie können auch mit den verschiedenen Hintergründen herumspielen, die Sie auf der Website oder auf jeder Website
finden. Sie können auch Ihr eigenes Papier fotografieren und hinzufügen. Das verleiht ihm mehr Charakter, besonders wenn Sie etwas mehr wie Zeitschriftenpapier mit
viel Farbe und vielen Aufklebern und Klebeband erstellen . All diese Details können Ihrer grafischen Arbeit ein natürliches Aussehen verleihen. Das ist alles, was ich für diese Texturtechnik habe. Als nächstes werden wir über die nächste Farbtechnik sprechen, und zwar Hintergrundbilder, um Ihre Grafiken zu färben.
6. Farbe 02: Farbe aus Bildern: In dieser Lektion besprechen wir die zweite Färbetechnik, die ich Ihnen zeigen
möchte und die Bilder als Farbe verwendet. Diese Technik ist nützlich, wenn Sie, sagen wir, ein Bild
haben, das Sie auf Ihrem iPad erstellt haben, sagen
wir auf Procreate. Und er benutzte Dinge wie Verläufe und Pinsel, die etwas weicher sind. Erleichtern Sie das flüssige Werkzeug, um die Farben zu verschmelzen. Das wäre ein großartiges Bild, das man
als Eingabe für Farbe für Ihre geometrischen Designs verwenden und verarbeiten kann, die etwas rauer sind, aber mit solchen Farben kann
es das Design erhöhen, das Ende für ich werde eines meiner früheren geometrischen Entwürfe aus dem Rekursionskurs verwenden. Und ich werde es hier für ein anderes geometrisches Design verwenden. Es wird also ein anderes Aussehen geben. Das erste, was wir tun müssen, ist das Bild in die Verarbeitung zu importieren. Und ich gehe in den Ordner. Sie müssen Ihre Skizzendatei speichern, um zum einschließenden Ordner zu gelangen. Und dann erstellen wir einen neuen Ordner und eine zusätzliche Skizzendatei, und ich nenne sie Daten, weil Sie so
Bilder hier oder irgendwelche Dateien importieren , anstatt in Ihre Verarbeitungsdatei oder Verarbeitungsskizzendatei. Und dann hole ich es mir. Ich habe es hier in meinen Downloads gestellt. Und so einfach, ich nannte es Image Underscore 001 nur für einfachen Zugriff. Und wenn ich jetzt wieder hierher gehe, können
wir das geladene Bild erstellen. Also erstelle ich eine neue Variable namens image mit der PMF-Klasse. Und dann hier drin werde
ich sagen, dass das Bild das Bild laden wird. Laden Sie also Bild, und das nimmt den Dateinamen an. Deshalb ist es viel einfacher, wenn Sie einen einfachen Dateinamen haben. Und ich werde es auch skalieren, denn wenn ich das jetzt zeichne, stell dir vor, du kannst es mit der Bildmethode trocknen. Und dann musst du einfach die Ecke positionieren. Wenn ich es jetzt zeichne, wird
es riesig. Wenn ich die Größe ändern möchte, muss
ich nur die Resize-Methode innerhalb der PImage-Klasse verwenden. Und ich mache einfach Breite und Höhe. Gerade jetzt. Ich weiß mit Sicherheit, dass mein Bild oder das Bild, in das ich lade, ein Quadrat ist. Es spielt also keine Rolle, ob ich es einfach auf die Breite und Höhe meines Bildschirms ändere, da es ihn nicht verzerrt. Und das ist das eigentliche Bild. Wenn Sie jedoch ein
längeres Bild haben, also vertikal oder horizontal, müssen Sie entweder die Größe also vertikal oder horizontal,
müssen Sie entweder die Größe seiner Breite oder Höhe ändern, je nachdem, welches Teil Sie mehr wünschen. Und der Rest wird von deinem Bildschirm ausgeschnitten. mir jedoch nichts aus, wenn ich es für Farbe verwende. macht nichts aus, das Bild zu verzerren und es im Grunde zu
zerstören, indem Sie es einfach auf die Breite und Höhe
meines Bildschirms anpassen, da ich es nur in geometrischen Formen verwende. Mein Endziel ist es also nicht, dieses Bild,
die zugrunde liegende Bildbedeutung, zu zeigen die zugrunde liegende Bildbedeutung, ,
aber für dieses wird es sehr einfach sein. Also werden wir die Größe einfach auf die Breite und Höhe ändern. Und jetzt haben wir das Bild, das perfekt zum Bildschirm passt. Und dann ist das Nächste, die Farben von jedem der Pixel zu greifen. Jetzt können Sie jede Farbe aus diesem Design erhalten, indem Sie die get-Methode verwenden. Also wenn ich sage, drucken Sie was auch immer in den Bildanzeigen MouseX und MouseY ist. Und du musst MouseX und MouseY in die Draw-Funktion legen, weil wir jedes Mal drucken mussten, wenn ich die Maus bewege, denn MouseX und MouseY, warum? Wir schnappen uns die Details, wo die Maus ist. Wenn Sie es also in die Setup-Funktion stellen, wird es einfach einmal ausgeführt und das ist der Null-Null-Punkt. Wenn ich das jetzt jetzt durchführe, können
wir sehen, wie sich die Farben ändern. Und wenn ich tatsächlich zeichne, es einfach als Füllung,
anstatt es so zu machen verwende
ich es einfach als Füllung,
anstatt es so zu machen, und dann zeichne ich ein Rechteck bei MouseX Hausfrau. Das werden, sagen wir mal, 30 mal 30 Pixel sein. Und jedes Mal, wenn es von diesem gefüllt wird, werden wir sehen, wie sich die Farben jedes Mal ändern. Sie können also sehen, dass sich die Farbe des Rechtecks
je nachdem, wo sich meine Maus auf welchem Pixel befindet. Wenn es also auf den orangefarbenen Pixeln ist, dann wird es orange,
pink, pink und so weiter und so weiter sein . Nun, zum nächsten Abschnitt dieser Lektion, der
das Beispiel ist. Also zeige ich dir ein Beispiel, wo du so etwas benutzen kannst. Also erstelle ich etwas sehr Geometrisches, und das bedeutet normalerweise, dass ich ein Raster verwende. Also werde ich eine Methode erstellen, die ich Grid aufrufe. Und es wird eine Zählung erfordern, denn für dieses Raster brauche
ich, da es ein Quadrat ist, da es ein Quadrat ist, eine x-Zählung und eine weiße Zählung. Und das wird die Anzahl meiner Spalten und Zeilen sein. Das erste, was ich für ein Gitter erstellen würde, ist die Silhouettenstifthöhe, die die Anzahl und die Breite meines Bildschirms
kennt. Der erste wird sich so lohnen. Und ich werde die Breite geteilt durch den Float der Zählung sein. Nur um eine genauere Berechnung zu erhalten. Denn wenn ich das nicht tue, wenn Sie die Breite durch eine Zahl teilen, die durch die Breite unteilbar ist, werden
Sie viele Lücken sehen. Wenn Sie dies jedoch in einen Float umwandeln, erhalten
Sie die korrekte oder genauere Berechnung. Und dann wird dies die Höhe geteilt durch den Zählschwimmer. Und übrigens können Sie auch Anleitungen erstellen. Wir können eine andere Methode erstellen, die Sie Guides aufrufen können. Wenn dir das hilft. Und auf diese Weise können Sie sehen, wie das Raster funktioniert. Das Gleiche gilt für diesen. Lassen Sie uns also beides gleichzeitig erstellen. So kannst du sehen, wie die Dinge funktionieren. Und Sie können eine Funktion erstellen, die diese zusammen berechnet. Und dann kannst du sie innerhalb dieser beiden nennen, anstatt alles neu zu definieren. Aber ich bevorzuge es so, nur für den Fall, dass ich die Jungs in etwas anderes verwandeln wollte. Und dann ist j weniger als count. Also wird j die Höhe des Bildschirms durchlaufen, und ich werde die Breite durchlaufen. Es wird also die Spalten für uns erstellen. Und es liegt an dir, wenn du willst. Ich sage zuerst, du willst zuerst die Breite des Bildschirms durchgehen, die Männer, die Höhe. Es spielt hier keine Rolle. Und dann erstelle ich die X- und Y-Positionen. Also dieses wird ich mit der Zellenbreite multipliziert, und y wird j multipliziert mit der Zellhöhe. Und dann werden das die Guides sein. Das ist also nur für uns zu sehen, dass alles gut
funktioniert oder alles dort ist, wo es positioniert werden sollte. Und manchmal ist es schön, diese Guides zu verlassen. Es kann ein schönes Bild geben und darüber werden wir später auch sprechen. Und jetzt, wenn ich den Guide zeichne, die Guides, anstatt das Bild auszuprobieren zeichne
ich die Guides, anstatt das Bild auszuprobieren. Und sagen wir, ich möchte 10 Zeilen mal zehn Spalten. Dann bekomme ich 10 Zeilen mal 10 Spalten. Ich weiß also, dass mein Grid einwandfrei funktioniert. Jetzt kann ich das kopieren und hier einfügen. Und anstatt Rechtecke zu zeichnen, zeichne
ich Linien und Bögen. Es ist also so, als würde ich versuchen , einen Pfad von einer Seite des Bildschirms zu
zeichnen durch Zeilen
und Spalten zu schleifen, bis er das Ende des Rasters erreicht. Und das kann ich erstellen, indem ich ein paar Szenarien spezifiziere. Also möchte ich von der oberen linken Ecke gehen und dann möchte ich nach rechts gehen, und dann gehe ich eine Linie runter und dann nach links dann eine Zeile nach rechts
und so weiter und so weiter und so
weiter bis zur letzten Zelle in meinem Raster. Für dieses Szenario weiß
ich, dass ich mich nur in der ersten Spalte und in der letzten Spalte drehe. Zu wissen, dass ich eine wenn bedingte Bedingung schreiben kann, prüft, ob es die erste Spalte ist. Und dann ein anderes f, das prüft, ob der letzte passt. Und das wird Minus eins sein, denn wir gehen eins weniger als die Zählung oder vielmehr hier. Und schließlich wird meine sonstliche Aussage alles andere sein. Es ist also nicht die erste Spalte, es ist nicht die letzte Spalte, es wird alles andere sein. Für alles andere ich eine Linie, die am einfachsten ist. Also fangen wir damit an. Es wird von x und y gehen. Also vom linken Teil der Zelle. Und dann für y, weil ich möchte, dass es im Mittelpunkt jeder dieser Zellen steht. Dann füge ich die Zellenhöhe geteilt durch zwei hinzu. Und dann möchte ich, dass es auf die rechte Seite jeder Zelle geht, also wird das x plus E-Zellenbreite sein. Und dann wird der letzte
gleich sein , weil ich nicht möchte, dass es sich um eine diagonale Linie handelt, ich möchte, dass sie horizontal ist. Es wird also das Gleiche sein. Also die Zellenhöhe geteilt durch 2, also wird y gleich bleiben. X geht von links nach rechts. Und wenn ich das mache, sollte
ich Zeilen sehen, wenn ich tatsächlich Greg anrufe. Rufen wir also Gerd an. Und ich zähle die gleiche Zählung. Wir können nur sicherstellen, dass
ich jedes Mal, wenn die Guides mit dem Raster identisch sind, hier die Zählung definieren werde. Wir werden es zehn Minuten blödes Arguments hier mit der variablen Anzahl machen. Und jetzt können wir sehen, dass die erste Spalte
nichts hat , weil unsere F-Bedingung leer ist. Und dann ist die Elsif-Bedingung für das letzte leer, aber dann
hat die in der Mitte, was alles andere ist, was alles andere ist, eine Linie, die horizontal von links
nach rechts verläuft und in jedem vertikal zentriert ist -Zelle. Jetzt zum ersten, dem letzten, weiß
ich, dass ich Bögen zeichnen möchte, um sich zu drehen. Das wird also ein Viertel eines Kreises sein, um für jede Zelle von einer Linie zur anderen zu wechseln. Es wird also ein halber Kreis für beide Zellen sein, aber wir müssen ein Viertel des Kreises und dann
ein Viertel des Kreises für die andere Zelle zeichnen . Es gibt also zwei Szenarien für die erste Spalte und dann gibt es zwei Szenarien für die letzte Spalte, und das sind ungerade Zeilen und gerade Zeilen. Die erste, die wir machen werden, ist und rudern sogar. Und das ist, wenn j modulo 2 gleich 0 ist,
was bedeutet, dass wenn der Rest der Dividierung j durch zwei gleich 0 ist, was bedeutet, dass J durch zwei teilbar ist, dann wird dies eine gerade oder gerade Zahl sein, was bedeutet, dass es eine gerade reihen. Und dann sonst, wenn j nicht gerade ist
, wird der Rest der Teilung durch zwei nicht gleich 0 sein, dann wird es uns die ungeraden Zeilen geben. Wenn ich diesen also kopiere und einfüge, wird
es für beide gleich sein. Der einzige Unterschied besteht darin, wie wir die Bögen zeichnen werden. Also haben wir in der vorherigen Lektion oder in der vorherigen Farbstunde über unser x gesprochen. Und wir wissen, dass für arc in den ersten beiden
Argumenten die X- und Y-Position seines Zentrums sein wird. Wenn es also ein voller Kreis ist, dann wird das Zentrum unser x und y sein. Also will ich das Zentrum für diesen, für jeden der Geraden. Also wird 0 als gerade Reihe betrachtet, denn die Geraden werden morgen nicht die zweite sein, die wir visuell sehen, aber es wird die dritte sein, weil wir 01234 gehen. Das ist also sogar, das ist sogar. Und dann ist das merkwürdig. Also weiß ich, dass es läuft, weil ich weiß, dass ich hier anfange, also weiß ich, dass es so läuft. Und dann gehen
wir hier rüber, gehen wir diesen Weg und dann drehen wir uns um. Und wenn wir dann hierher gehen, werden
wir diesen Weg gehen. Ich weiß also, dass dies für den ersten ein halber Kreis sein wird. Eigentlich können Sie eine Linie zeichnen, aber es sind noch mehr Bedingungen, die Sie Ihrer for-Schleife
hinzufügen können oder die Sie Ihrer for-Schleife hinzufügen müssen. Also lasse ich es einfach als eine Kurve oder einen Bogen, der nach oben gehen wird. Das wird also x plus die Zellenbreite sein, da dies die obere rechte Ecke ist. Und dann wird es y sein, weil wir uns nicht vertikal bewegen. Und dann müssen wir einen Radius definieren. Also mache ich einen Kreis. Für Breite und Höhe wird es also R sein und ich werde hier drüben r definieren. R wird also der Mindestwert für Zellenbreite und -höhe sein. Nur für den Fall, dass ich das zu einem rechteckigen Raster machen wollte. Dies wird sicherstellen, dass es immer Kreise für Bögen hat und sie nicht über den ganzen Bildschirm streckt. Denn dann gehen wir zu diesen anderen und es werden Ellipsen sein. Und es wird nicht gut aussehen, es sei denn, das ist der Look, den du anstrebst. Also werde ich nur den Mindestwert erfassen, egal ob diese Zellenbreite oder hoch verkaufen, je nach Bildschirm, ob er vertikal oder horizontal, aber minus quadratisch sein soll. Es spielt also momentan keine Rolle. Sie können also einfach die Zellenbreite angeben und das wird in Ordnung sein. Und jetzt weiß ich, dass der Bogen beginnt oder ein Kreis von der rechten Seite abfällt. also an die beiden Linien senkrecht zueinander in der Mitte denken, wissen
wir, dass oben Norden und dann unten Süden liegt. Die Rate wird also Ost sein und links wird West sein. Also fangen wir von der Ostseite aus an. Aber ich weiß, dass es nicht von 0 kommt. Es wird also vom South Point aus beginnen. Und der Südpunkt wird halb Pi sein, weil wir
von 0 um Viertel des Kreises bewegen und das ist der halbe Pi. Und dann gehe ich zur Westseite des Kreises, also wird das Pfeife sein. Lassen Sie uns das nun ausführen, um sicherzustellen, dass alles einwandfrei funktioniert. Wie Sie sehen können, trocknen die Bögen gut. Und lassen Sie uns die Farbe ändern, damit wir es sehen können und die Guides jetzt verstecken können, oder wir können es etwas anderes färben. Sagen wir jetzt, Film und dann Strich werden es 0 bei 50 Transparenz machen. Und dann werde
ich hier drüben Schlaggewicht machen. Wir machen das Strichgewicht variabel. Also mache ich die Breite geteilt durch die Anzahl multipliziert mit zwei. Nur eine willkürliche Zahl. Es ist das, was ich berechnet habe und es gefällt mir am besten. Und dann machen wir auch Strichkappe. Und ich mache das Quadrat. Und wir machen sie vorerst einfach schwarz. Und anstatt hier
und in beiden Funktionen keine Füllung zu definieren , mache
ich es einfach hier drüben. Wenn ich das jetzt mache, sollten
wir einen schöneren Blick sehen. Für die seltsamen hier drüben wollen
wir, dass es diese Lücke schließt. Dies wird also x plus Zelle mit 10 und y plus Zellhöhe sein. Dies ist das Zentrum. Und dann wird es für den Radius jedes Mal gleich sein. Und jetzt wissen wir nicht, dass sich dieser oder der Kreis im Uhrzeigersinn dreht, wir müssen von 0 auf den halben Pi gehen, aber das brauchen wir nicht. Und dann gehen wir zu Pi. Trotzdem brauchen wir das nicht. Also gehen wir von Pi zu Pi plus halben Pi. Also die Hälfte des Kreises plus ein weiteres Viertel. Und wir empfehlen Ihnen, mit Bögen zu experimentieren, wenn Sie das Gefühl haben, dass es keinen Sinn ergibt. Beachten Sie jedoch, dass der halbe Pi ein Viertel eines Kreises ist, Pi ist ein halber Kreis. Und wenn Sie einen RQ zeichnen, gehen Sie im Uhrzeigersinn. Und wenn ich das jetzt mache
und ich tatsächlich beide Ereignisse gemacht
habe, wird es nicht funktionieren. Jetzt haben wir also unsere geraden Rosen sind seltsame Reihen und sie arbeiten. Großartig. Jetzt machen wir die letzte Kolumne. Für die letzte Kolumne gehen
wir also so. Also musst du diesen Weg gehen. Dieser Punkt ist also x, und dann geht y die volle Höhe. Es wird also y plus Zellenhöhe sein, dann bleibt der Radius gleich. Und jetzt, seit den Zentren hier drüben, gehen
wir von Half Pi plus Pi auf zwei Pi. Und der Grund, warum ich zwei Kuchen sage, weil wir tatsächlich einen Kreis schließen, anstatt 0 zu sagen, was rückwärts gehen wird. Und wenn ich das mache, solltest
du das vorletzte haben. Und jetzt noch letzter. Wir werden das Zentrum bei x und y haben. Und dann wird dies der Radius sein. Und schließlich wird es von gehen, da dies das Zentrum ist, wird
es von 0 auf den halben Pi gehen, also nur ein Viertel eines Kreises. Und jetzt haben wir ein komplettes Design. Nun zum wichtigsten Teil, und das ist das Färben mit dem Bild, das wir hinzugefügt oder neu geladen haben. Und wie wir jetzt wissen, können
wir das mit der GetMethod tun. Was ich also tun würde, ist einfach das Bild mit der Get-Methode zu greifen. Ich benutze die X- und Y-Position. Aber weil ich das Zentrum dieses Gitters oder das Zentrum der Zellen und des Migranten haben will. Und ich muss die Hälfte
der Zellenbreite zum X und dann die Hälfte der Zellhöhe zum y hinzufügen , nur um sicherzustellen, dass ich die Farbe in der Mitte von mir selbst bekomme. Und jetzt wird sich beklagen, dass ganze Zahlen benötigt und das sind Floats. Also muss ich es in eine int-Methode einkapseln. Nur weil das Casting hier nicht funktioniert, da wir eine Formel haben. Und statt, also müssen wir x alleine werfen und dann wäre die Zelle allein, oder Sie müssen sie in Klammern einkapseln, und dann wird dies in Klammern stehen. Das ist zu viel, also können wir die Methoden einfach verwenden und konvertieren. Es ist viel kürzer. Wenn ich das jetzt mache, sollten
wir die Farben aus dem Bild holen. Wenn ich jetzt das Bild zeige, kann
man leicht sehen, dass überall dort, wo die Linien und Bögen vorhanden sind, die Farbe von der Mitte dieser Zelle aus
greifen. Und um sicherzustellen, dass wir tatsächlich die Farben aus dem Bild nehmen, können wir dies durch Erstellen einer Animation bestätigen. Und ich finde es schön zu sehen, wie die Farben dynamisch von den Bildern gegriffen werden. Sie können dies also tun, indem Sie
die Zählung so belassen , da sie jetzt standardmäßig auf 0 initialisiert wird. Also wenn ich einfach hier rübergehe und dann zähle ich plus, plus als dass ich es um eins erhöht. Und dann schnappe ich, dass diese eigentlich nicht mehr die Guides bedeuten, weil sie das Bild haben. Und jetzt wird
es jedes Mal, wenn dies erhöht wird, hier drüben und das Beste wird basierend auf der Zählung aktualisiert. Und dann müssen wir auch den Hintergrund zurücksetzen. Ich mache es auch zu einer dunkleren Farbe, weil es mit den Farben, die ich habe, schöner ist. Und ich werde die Bildrate reduzieren, weil dies blendend sein wird. Also mach es mit 24 Uhr. Du schaffst es sogar weniger. 12 wäre nett, aber es sieht eher wie eine Stoppbewegung aus, jede Bewegung und nur sicherstellen, dass alles richtig gezeichnet wird. Jetzt können wir das ausführen und Sie können sehen, wie sich das Bild zeigt, je mehr Zellen wir haben. Weil es einer Erhöhung der Bildschirmauflösung ähneln wird. Also mehr Pixel haben,
was bedeutet, ein klares Bild zu haben. Und das ist im Grunde das. Aber jetzt haben wir ein wirklich schönes Design. Sie können diese Animation also auch speichern, um
den Leuten das zugrunde liegende Bild zu zeigen , woher Ihre Farben stammen. Oder du kannst auch Screenshots deiner Favoriten teilen. Meine Favoriten sind normalerweise diejenigen, die zwei haben. Wenn ich also so etwas mache, kann
ich es in jeder Grafikdesignarbeit verwenden. Oder sogar eines kann etwas sein, das du benutzen kannst. Ich verwende das tatsächlich in Code mit mir Video auf YouTube, wo ich am Ende des Videos Titel in einem solchen Frame
hinzugefügt habe , aber einen, der horizontal ist, damit es zum Video passt. Aber im Allgemeinen gefällt mir die Animation besser weil sie am Ende das Bild oder das zugrunde liegende Bild zeigt. Und wenn Sie dies speichern möchten, können
Sie sagen, ob count oder Sie können die Frame-Anzahl kleiner oder gleich verwenden, sagen
wir 120 basierend auf den Bildraten und der Anzahl der Frames. Und ich benutze einfach einen Frame und lege ihn in einen Ausgabeordner. Und da wir wissen, dass wir mit drei Ziffern anhalten werden, brauchen
wir mehr als drei Hashes
und dann PNG oder JPEG, je nachdem, welches Format Sie mögen. Und sonst werden wir aussteigen. Dadurch werden die Bilder gespeichert und dann wird der vorherige Bildschirm beendet oder geschlossen. Das ist also Farben von Bildern zu greifen. In der nächsten Lektion sprechen wir über eine andere Texturtechnik und das heißt, Ihre Hilfslinien als
Designelemente hinzuzufügen oder einfach Hintergrundelemente hinzuzufügen, um Ihr Design zu erhöhen oder visuelles Interesse zu wecken.
7. Textur 03: Hintergrundelemente: In dieser Lektion werden wir an einem Beispiel arbeiten , weil wir das bereits erstellt und implementiert haben. Diese Technik ist der zweiten etwas ähnlich. Bei der zweiten ging es darum, ein Hintergrundbild hinzuzufügen. Während es darum geht, Hintergrundelemente
wie Hilfslinien oder Textur und Details wie gefälschtem Staub und Kratzer hinzuzufügen . In der zweiten Texturierungstechnik kombiniere
ich zwei Raster an Oberteilen, das Hintergrundbild, um Millimeterpapier nachzuahmen, zumal wir ein echtes Papierbild im Hintergrund verwenden. Es schien auch die natürliche Wahl zu sein,
einen Farbverlauf an erster Stelle hinzuzufügen , um zu zeigen, warum sich das Design so verhält, wie es ist. Um zu zeigen, dass Verkaufsgrenzen verkauft werden, kann jeder Agent jeweils finden. Für dieses andere Beispiel ist es jedoch unnötig, die Leitfäden
aufzudecken. Hinzufügen kann das Design verdrängen oder sogar ruinieren, da wir Farben aus einem Bild nehmen, je mehr Zellen, desto mehr können die Hilfslinien behindern. Stellen Sie sich Ihren Desktop-Hintergrund in allen Pixeln vor, Kanten in Weiß oder Schwarz, das Bild wird in unserem Fall nicht gut aussehen.
Die Designer wirken sich jedoch auf Pixel aus, sodass wir subtile Hilfslinien wie Punkte an den Zellen und
Kanten hinzufügen können ähnlich gepunktetem Papier, irgendwie wie die Bullet-Tagebücher, die wir da draußen sehen. Es stellt das zugrunde liegende Raster frei, ohne das endgültige Bildmaterial zu überwältigen. Dieses Beispiel, das als Nächstes erschaffen wird, gibt uns das Gefühl von Chaos. Obwohl ich, wenn ich die Guides zeige, entlarve ich, dass es tatsächlich Chaos angeordnet ist. Es ist Immungrad mit zufällig versetzten Formen. In diesem Beispiel ist das Aufdecken der Hintergrunddetails
Ihre Wahl, abhängig von der Reaktion, die Sie möchten, wenn Sie es anderen zeigen möchten. In diesem Beispiel gibt die
Verwendung von Zahlen, die das zugrunde liegende Raster enthüllen dem Betrachter einen Einblick in das Design, um eine Art grafisches Element hinzuzufügen. Es zeigt, dass ich dies mit einem Raster erstellt habe, während ich den Ansatz anbot,
die Note zu machen , dass ich keine verschachtelten Schleifen verwendet habe, die doppelte Zahlen hätten anzeigen können. Sie können auch Hintergrundelemente hinzufügen, die nur zu Designzwecken dienen. In diesem Beispiel werden zufällige Kratzer verwendet, um Papierunvollkommenheiten nachzuahmen. Bromidee, um einem Design Textur zu verleihen. Es sieht aus der Ferne nicht auffällig aus, ist
aber immer noch im Gesamtbild sichtbar,
besonders wenn es auf normalem Normalpapier gedruckt wird. Auch für die Datenvisualisierung das
Anzeigen einiger Hintergrundelemente in Bezug auf kann das
Anzeigen einiger Hintergrundelemente in Bezug auf
die Informationen für den Beobachter sehr hilfreich sein. Prüfen Sie Nicholas Felton, arbeiten Sie für einige Ideen auf ihrer Website fiel Tron.com. Es gibt eine Reihe von Beispielen aus den Jahresberichten, die sie im Laufe der Jahre erstellt haben von denen
einige mithilfe der Verarbeitung erstellt werden. Überprüfen Sie auch ihre Skulpturenklassen und das Informationsdesign mit der Verarbeitung, einschließlich Grafikdesign und Codierungstipps zum Thema. Jetzt ist es an der Zeit, darüber nachzudenken, wie Sie Ihrem Hintergrund oder
sogar Vordergrund Textur verleihen können, um Kratzer oder Staubpartikel auf einem Kameraobjektiv zu simulieren. Das würde auf jeden Fall richtig cool aussehen. Ich habe versucht herauszufinden, wie Sie die physische Welt in Ihren Computerbildschirm bringen können. Das ist alles, was ich für diese Lektion habe. Wenn Sie mehr Ideen haben, teilen
Sie diese bitte in der Diskussion oder teilen Sie sie sogar in Ihren Beispielen für Ihre Projekte mit. Ich würde sie gerne sehen. Als nächstes werden wir über ein sehr interessantes Konzept sprechen, unser Design mit
einer Technik zu färben, die der Kollisionserkennung ähnelt, indem man Farbfirmen und den nächsten Nachbarn greift.
8. Farbe 03: Farbe für Entfernung: In dieser Lektion sprechen wir über die dritte Färbetechnik. Und für mich ist dies einer der interessantesten, die ich in einem der Tyler Hubs Artikel
gelernt und darüber gelesen habe. Er hat es gerade erklärt. Es gibt keine Codes. Ich fing an zu experimentieren und habe meinen Weg gefunden, es zu tun. Diese Färbetechnik ähnelt also der Kollisionserkennung. Ich nenne diese Färbetechnik Färbung nach Entfernung, weil sie nach dem nächstgelegenen Agenten oder
farbigen Agenten zu einem Objekt
sucht und
diese Farbe verwendet , die etwas Ähnliches wie eine Voronoi-Textur mit Farbe erzeugen kann. Um dies zu erreichen, gehen wir von
der Farbe eines Beispiels oder dem ersten Farbtechnikbeispiel,
der Farbinterpolation, fort der Farbe eines Beispiels oder dem ersten Farbtechnikbeispiel, . Wir werden jedoch ein paar Dinge ändern. Also werden wir Agenten brauchen. Und die Agenten werden auf die gleiche Weise positioniert sein, wie dieser positioniert ist. Dafür werden
wir jedoch das Verhalten eines Agenten ändern, und wir werden den Konstruktor auch ein wenig ändern. Anstelle von Zufälligkeit werden
wir dafür ein Raster erstellen. Ich füge zwei Argumente für den Agent-Konstruktor hinzu. Wenn wir also eine Instanz der Agentenklasse erstellen, können
wir dann die Position entscheiden. Also in der for-Schleife wird das Raster erstellt. Dafür werden wir den Float-Unterstrich x und float Unterstrich y machen. Und dann werde ich diese beiden ändern,
um x zu sein unser nativer innerhalb der Klasse ist, was unser nativer innerhalb der Klasse ist,
entspricht dem Parameter x hier gleich. Und dann werde
ich ihn für den Radius auch später initialisieren, abhängig von der Zellengröße. Und lassen Sie uns die Strichbreite drei machen, weil wir sie nicht brauchen, um riesig zu sein. Und dann brauchen wir keinen Winkel in einer Geschwindigkeit, da wir auf die gleiche Weise
aktualisiert wurden, wie wir den vorherigen aktualisiert haben. Und wir brauchen keine Farbe 1 und Farbe 2, da wir
einen anderen Agent verwenden werden, um diese Farben zufällig zu färben. Sie können also eines der beiden Kilowattstunden CO2 behalten und es
dann in Farbe umbenennen, weil ich das im Grunde getan habe. Und dann kann ich das von hier entfernen. Das kann ich auch entfernen. Und weil wir meistens Kreise zeichnen,
brauchen wir den Strichbecher nicht , weil wir sowieso keine Kappen sehen werden. Und ich werde die gleich behalten und all das auch entfernen. Jetzt hab einfach einen Kreis und XY. Und es wird einen Radius haben. Eigentlich benenne
ich dies anstelle von Radius in Größe um. Es ist also nicht verwirrend wie zuvor. Größen, im Grunde der Durchmesser des Kreises, da Kreise und Ellipsen mit dem Durchmesser und nicht dem Radius gezeichnet werden. Und ich brauche das Update für die Kollide nicht. Und jetzt, anstatt das Schlaggewicht konstant zu haben, werde
ich es durch acht dividieren lassen. Und das oder das Hinzufügen von Punkten 0 macht es zu einem Float. Anstatt einfach das zu tun, was ich normalerweise so mache. Weil es eine Zahl ist, kann ich leicht 0 setzen und es dann in einen Float verwandeln. Dies wird mir also eine genauere Berechnung geben. Das nächste, was ich tun werde, ist hier raus zu gehen. Und anstelle einer ArrayList verwende
ich ein reguläres Array. Weil ich die Zahl basierend auf der Anzahl angeben möchte, die ich für ein Raster angegeben habe. Ich werde das zählen lassen. Also kann ich einfach eine ganze Zahl machen, kann nicht. Eigentlich wird das mit der Zählung multipliziert, weil ich den Bereich haben will. Während hier zählt die Anzahl der Zeilen und die Anzahl der Spalten darstellen wird. Sagen wir also, ich möchte, dass 10 beginnen. Okay, also lasst uns oben und ich erkläre, was ich hier versuche. Agent wird also nicht
einfach die Agenten sein , die wir wie zuvor auf dem Bildschirm sehen werden. Es werden die Agenten sein, die wir sehen, und der Agent hinter den Kulissen, die die Quelle unserer Farben sein werden. Am Anfang
habe ich eine zufällige Farbe gewählt, aber das werden wir nicht für unseren Agenten verwenden. Das werden also die Farben für unsere Farbstoffe sein. Wir werden unsichtbar sein. Jetzt weiß ich das, kann ich ein anderes Agent-Array erstellen. Dieser wird jedoch die Farbstoffe sein. Und die Anzahl für dieses Array für das Color Agents Array hängt davon ab, wie viel Farbe Ihr Design haben soll. Wenn ich also einen neuen Agenten sage und nur fünf Farben einfüge, dann werden Sie feststellen, dass die Mehrheit in bestimmten Bereichen eine Farbe
haben wird , da es nur fünf Agenten gibt, aus denen Sie Farbe greifen können. Wenn ich jedoch 50 setze
, bekomme ich mehr Farbabweichungen. Fangen wir also mit fünf und zeigen wir es an. Jetzt können wir das alles tatsächlich löschen. Wir haben kein Update, weil wir nichts verschieben werden. Jetzt beginnen wir hier drüben, Agenten zu initialisieren. Also mache ich für Integer I oder für Integer n, weil ich I und j Liter gleich 0 und n verwenden werde, ist kleiner als die Punktlänge der Agenten. Und jetzt sage ich n modulo count. Es wird also von 0 zu zählen gehen. Also hier sind es 10, das wird von 0 auf neun gehen. Und dann ist Integer j n geteilt durch count. Es geht also darum, den Rest der Teilung zu bekommen und nach Zählungen wird von 0 auf neun und dann wieder von 0 auf neun gehen. Es wird also jede Zeile durchlaufen, weil j durch Anzahl geteilt wird. Denn was auch immer n zu diesem Zeitpunkt ist, es durch die Zählung zu
teilen, wird die Zeilen durchlaufen. Und jetzt kann ich für Floats x sagen, für die x-Position werde ich mit der Zellenbreite multipliziert. Und dann wird für y j multipliziert mit der Zellhöhe. Und wenn wir initialisieren oder bevor wir das tun, gehen
wir hier rüber und machen Zellenbreite und -höhe, um es zu definieren. Und dann hier drüben. Die Breite wird also
wie zuvor durch Float von Zählungen geteilt sein . Und dann wird die Zellenhöhe geteilt durch Float-Anzahl sein. Ich möchte aber auch Marge oder ich möchte jederzeit eine Marge haben. Also schneide ich es von hier ab und lege es stattdessen hier rüber. Und dann subtrahiere ich es von der Breite. Also der Grund, warum ich Marge multipliziert mit 2s sage, denn was ich als Marge definiere, ist nur eine Seite davon. Von der Breite brauche
ich also eine links und eine auf der rechten Seite. Also müssen wir es mit zwei multiplizieren, um das Doppelte zu erreichen. So kann ich es von der Breite und der Höhe abziehen. Und dann müssen
wir es vorantreiben. Aber bevor wir das tun, möchte
ich Ihnen zuerst zeigen, wie der Zuschuss aussieht. Dann können wir es bis zum Vorsprung vorantreiben. Jetzt können wir Agenten sagen. Ich wollte einen neuen Agenten gleichstellen. Und der Konstruktor benötigt eine X-Position und Y-Position und eine Größe. Lassen Sie uns also auch
die Größe hier initialisieren und ich werde das Kit zum Minimum machen, egal ob es sich um Zellenbreite oder Zellhöhe handelt, um sicherzustellen, dass wir immer einen Kreis haben, insbesondere dass wir ihn hier als Kreis definiert haben sowieso. Wenn ja, werden wir im
Moment kein Problem haben, weil wir ein Quadrat für Canvas haben. Wenn wir jedoch eine vertikale Leinwand oder eine horizontale Leinwand haben, hilft uns
dies, nur Quadrate oder Kreise zu erhalten. Und jetzt haben wir es hier angezeigt. Wenn ich es also renne, sollte
ich es als n hier haben. Wenn wir jetzt drin wären, können
wir die Kreise sehen. Und hier sagte ich, dass wir es vorantreiben müssen. Da wir also gelöscht oder subtrahiert haben, verdoppeln Sie die Ränder von der Breite. Jetzt haben wir 100 Pixel hier drüben. Wenn ich das also nach Marge schiebe, indem ich nur die Marge hinzufüge, wird
es das Ganze nach rechts und nach unten schieben. So können Sie die Raster perfekt sehen. Ich zeichne auch Rechtecke oder Quadrate an Position x und y nach Größe und Größe. Also werden wir es auch brauchen, damit Sie sehen können, warum es hier nicht dasselbe ist. Und hier drüben. Weil wir zeichnen, als würden die Kreise von der linken oder oberen linken Ecke gezeichnet. Während sie tatsächlich aus der Mitte gezogen werden. Sie können also entweder den Ellipsenmodus in Ecke ändern oder einfach hier hinzufügen. So kann ich einfach die Größe geteilt durch zwei hinzufügen. Und hier ist die Größe geteilt durch zwei. Wir können eine Zelle mit einer Höhe wählen oder verkaufen. Entweder wird es gut gehen. Aus dem gleichen Grund, über den wir zuvor gesprochen haben, werde
ich dies verwenden, weil es sicherstellt, dass es mir das Minimum gibt,
sei es die Zellenbreite oder -höhe, die kleiner ist. Es passt also immer in meine II-Zellen. Eigentlich werde
ich es hier drüben machen, anstatt es hier drüben zu machen. Oder Sie können es auf diese Weise tun, um es sauber
zu halten , um sicherzustellen, dass es erst hinzugefügt wird, nachdem all diese erstellt wurden, sobald der Arzt gegründet wurde. Und der Grund, warum sie sich nicht an den Rechtecken ausrichten. Kreise wurden gedrängt. Sie richten sich jedoch nicht an
den Rechtecken aus, da die Rechtecke aus der Ecke gezogen werden. Also müssen wir es tun, nur damit wir sehen können, dass es gut funktioniert. Ich kann einfach Center für ihren Rechteckmodus machen. Und jetzt können wir sehen, dass es perfekt passt. Also werden wir die Rechtecke nicht mehr brauchen. Es war nur für uns, zu sehen, dass unser Netz gut funktioniert. So können
wir die erste Strichbreite noch kleiner machen, indem wir sie
durch 12 teilen , da es jetzt alles oder um 15 überlappt. Und ich werde auch den Hintergrund zurücksetzen, damit wir keine schiefen Linien von Bs sehen. Jetzt ist es viel sauberer und ich werde die Anzahl erhöhen und die Margen verringern. Also weitere Margen, ich werde es bei 20 halten. Und dafür werde
ich es 50 oder vielleicht ein bisschen größer machen. Weil ich noch ein paar Kreise brauche, um zu sehen, wie diese gefärbt werden. Jetzt für die Farbstoffe werde
ich es in einer Schleife initialisieren. Da es also zufällig sein wird, werde ich den Konstruktor duplizieren und einen
anderen erstellen , der keinen davon hat. Und es wird auch ein Zufall zwischen Breite minus Rand
oder zwischen Rand und Breite minus Rand sein . Und das Gleiche gilt für y. Und dann werde ich es auch zufällig
zwischen 35 und hier drüben machen . Jetzt kann ich Agenten an der Stelle verwenden, an der ich einem neuen Agenten gleichstellen werde. Und das wird der leere Konstruktor sein. Und wenn ich das hier anzeige, kannst
du einfach die Farbligenten wechseln und es wird jeden
greifen und es wird es anzeigen. Ich habe Agenten anstelle von Farbagenten gemacht. Wenn ich es jetzt nur initialisiere, können
wir sie tatsächlich oben sehen. Man kann sie also sehen, sie sind sehr klein. Wenn ich also nur die Größe auf 10 bis 50 erhöhe, und wir brauchen sie nicht, um so zufällig zu sein, also werde ich sie einfach zu 20 machen. Und jetzt können wir sie unsichtbar machen, nur wir haben sichergestellt, dass sie da sind. Und jeder hat eine andere Farbe. Ich behalte das als Leitfaden, damit ich es nicht
entfernen werde, damit ich es abkommentieren kann, wann immer ich will. Sagen wir also, wenn ich 50 hinzufüge, möchte
ich sehen, wie es aussieht. Ich kann es auskommentieren und diese einschalten. Jetzt haben wir unser Raster. Okay, eine andere Sache, die ich machen möchte, ist nicht nur die Zellenbreite und Verkaufshöhe zu bekommen, ich möchte, dass sie kleiner ist. Sagen wir also, ich möchte es durch 1,5 teilen. Also kann ich es ausgleichen. Und jetzt kann ich zur Größe zurückkehren und
diese auf acht ändern , weil sie sich nicht überschneiden werden. Also kann ich sie besser sehen. Und ich kann dies durch einen Zufallswert ausgleichen. Und diese Zufallswerte werden es sein. Von 0 bis Größe geteilt durch zwei. Sie können sie also sehen, sie sind ein bisschen zufälliger und sehen ein bisschen interessanter aus. Und wir machen auch die Höhe oder die Y-Position. Jetzt haben wir ein bisschen mehr Variation und das Design, Gehen wir zurück zu der Farbe,
die jetzt wichtiger ist, da wir unser Design etabliert haben, lassen Sie uns unsere Farbübertragungsmethode erstellen. Innerhalb unserer Agentenklasse erstelle
ich also eine Methode, die ich aufrufe „Farbe nehmen“ oder den Anruf annehmen werde. Und es wird ein anderes Agent-Array brauchen. Dann rufe ich Agenten an. Und diese ganze Sache wird eine Farbe zurückgeben. Was wir hier tun werden, ist, die Reihe von Agenten zu greifen, die Farbe enthalten, die wir verwenden werden, um
ein Design basierend auf der Entfernung zu diesen Agenten zu färben . Also kombiniere ich die gesamte Entfernung innerhalb eines Arrays oder eines Wörterbuchs. Und dann werde ich es tun, dann werde ich all diese farbigen Agenten durchforsten. Und dann überprüfe ich, welches die kürzeste Entfernung zu einem meiner Objekte hat. Was auch immer meinem Objekt am nächsten ist, das wird die Farbe meines Objekts sein. Um dies zu tun, verwende ich ein Float-Wörterbuch. Ich nenne es „Digests“. Und dann ist es so einfach wie das zu initialisieren. Und dann werde ich all
diese Entfernungen oder alle Agenten durchlaufen und die Entfernung überprüfen. Jedes Mal überprüfe ich den Abstand zwischen x und y und den Agenten x und y. Und jetzt wird dies innerhalb des Arrays oder des Wörterbuchs festgelegt. So können Sie dies tun, indem Sie uns einfach anrufen und dann die set-Methode aufrufen. Und die set-Methode nimmt einen Schlüssel auf. Also gebe ich ihm den Index, und dann wird es die Distanz als Wert nehmen. Dies ist also der Schlüssel für das Wörterbuch und dies sind die Werte für die Wörterbücher. Und der Grund, warum ich ein Wörterbuch verwende, ist, dass es eine Sortierwertemethode als 18 Jahre
hat. Und das wird sie in aufsteigender Reihenfolge sortieren. Auf diese Weise kann ich den ersten greifen, und das ist meine Farbagenten zu jedem Objekt, das gerade angegeben wird, am nächsten. Also hole ich mir alle Schlüssel. Und Sie können sie mit einem Schlüssel-Array greifen. Und dann gebe ich
den Agenten bei CHI 0 zurück und nehme die Farbe davon. Das ist ein Schluck voll. Wenn Sie es jedoch Schritt für Schritt machen, ist
es sehr einfach zu verstehen. Was ich also versuche, ist, alle Farbligenten zu greifen und die Entfernung mit jedem Agenten zu
überprüfen, den ich spezifiziere. Also kann ich das die Farbe im Array
des Agenten nennen , das ich hier habe, nämlich diese. Und dann überprüfe
ich für jede Iteration den Abstand zwischen diesem Agenten in der Array der Farbligenten. Und dann hole ich all diese Entfernungen, lege sie in mein Float-Wörterbuch ein, und dann sortiere ich die Werte in aufsteigender Reihenfolge damit ich meinem Agenten den nächsten Farbstoff bekomme. Und dann hole ich die Schlüssel für dieses Wörterbuch, damit ich den Agenten
beim ersten Schlüssel oder am Schlüssel an der ersten Position des Arrays und eines Wörterbuchs abrufen kann. Und dann hole ich mir die Farbe davon. Das wird also die Farbe des Farbagenten sein, das meinem Agenten am nächsten kommt. Wenn ich jetzt wieder hierher gehe, kann
ich das innerhalb meines Arrays verwenden. Also kann ich es so machen. Punktfarbe des Agenten. So kann ich die Farbe des Agenten greifen und sie den Agenten zuweisen Punkt-Dot-Dot-Dot-Punkt nehmen Farbe vom oder Durchschleifen durch das Farmagenten-Array. Dies wird also das ausführen, was wir gerade auf jedem Agenten innerhalb des Agenten-Arrays
erstellt haben. Und dann wird es auf seine Farbe eingestellt. Wenn ich das jetzt mache, sollten wir ganz andere Ergebnisse erzielen. Und wenn Sie jetzt die Farbligenten sehen möchten, nur um zu sehen, wie das funktioniert, können
Sie sie anzeigen und Sie können sehen, dass dieser diesen am nächsten ist, also hat es diese Farbe. Aber für diesen sind sie dem am nächsten, der, deshalb haben sie die orange Farbe und so weiter und so weiter. Und wie gesagt, wenn Sie nur fünf davon haben möchten, werden
Sie weniger Farbvariationen haben, da die Wahrscheinlichkeit geringer ist, dass einige Farben erscheinen, da wir in der ersten nur
fünf Farben haben Ort und du bekommst eine zufällige Farbe. Im Moment haben wir also kein Rosa, stattdessen haben
wir zwei Gelbtöne. Oder Sie können sogar die Wahrscheinlichkeit wählen eine Farbe über die andere in Ihrer zufälligen Farbauswahl zu wählen. Aber so wie ich es gerne mache, fügt nur 50 hinzu und auf diese Weise bekomme ich mehr Farbvariationen. Und wenn Sie dies anzeigen, können
Sie mehr Farben haben. Wenn ich also zurück zu fünf gehe, können
wir sehen, dass wir weniger Farbabweichungen haben. Es ist immer noch ein schönes Aussehen, aber wenn Sie möchten, dass alle Farben erscheinen, müssen
Sie entweder
die Wahrscheinlichkeit ändern , dass bestimmte Farben mehr erscheinen als andere. Oder Sie können weitere Agenten für die Farbagenten hinzufügen. Je mehr Sie hinzufügen, desto mehr Farbvariationen werden Sie haben. Wenn Sie diesen also viel größer machen, können wir weitere hinzufügen. Sie können das Design viel besser sehen. Es gibt dir tatsächlich eine Voronoi-Art Textur. Je mehr Farben Sie in Ihrem Array haben, desto mehr können Sie es sehen. Auch wenn Sie den Strich hier ändern, um stattdessen zu füllen. Und kein Schlaganfall dafür,
man kann es tatsächlich besser sehen. Dies ist also ähnlich wie beim Färben mit einem Hintergrundbild. Es nimmt jedoch die Farbe vom nächstgelegenen Farbligenten ab, anstatt nur das Pixel zu greifen, das sich darunter befindet. Aber wenn Sie ein Design haben, das Sie mit
Ihrem iPad oder Ihrem Wacom-Tablet oder einem Tablet erstellt haben , hat er eine Stiftbreite. Dann können Sie Farbverläufe oder geometrische Formen erstellen, die Leinwand
einfach mit Farben füllen und
diese als Hintergrundbild verwenden , um Ihr Design zu färben. So können Sie beispielsweise mehr Farbvariationen erzielen, ohne so etwas zu
lockern. Das war's für diese Färbetechnik. Als Nächstes werden wir
die vierte Texturierungstechnik angehen , und das fügt Ihrem Design Schatten hinzu.
9. Textur 04: Drop-down: Diese letzte Texturierungstechnik ist auch sehr einfach, da wir unseren Designs
einfache Schatten hinzufügen werden , um eine gewisse Tiefe in unserer Arbeit zu schaffen. Um dir zu zeigen, was ich mit einem einfachen Schatten meine. Lasst uns zwei Kreise erstellen. Und ich habe auch die Farbe und den Hintergrund bereits hinzugefügt. Wenn Sie also diese Farben nehmen möchten, tun Sie dies
gerne. Wenn Sie Ihre eigenen Farben verwenden möchten, würde
ich es tatsächlich ermutigen. Jetzt erstellen wir den einfachen Schatten. Wird das leicht tun, indem Sie zwei Kreise erstellen. Jetzt wird der erste Kreis der Schatten sein, denn was immer zuerst
kommt, wird unter dem zweiten liegen. Dies wird also, sagen
wir, Breite geteilt durch zwei sein. Die Höhe geteilt durch 2 muss in der Mitte sein. Und dann geben wir ihm einfach eine Breite von 100. Und dann gilt das Gleiche für diesen. Der einzige Unterschied besteht darin, dass der unten etwas versetzt wird. Also versetzen Sie es entweder nur nach rechts oder Sie können nach
rechts und unten versetzen , wo immer Sie das Licht wählen, das von ihnen kommt, gehen Sie
einfach dem entgegengesetzt. Also wähle ich das Licht aus, das von der oberen linken Ecke kommt. Denken Sie auch daran, dass dies ein sehr einfacher Schatten ist, also ist es nicht realistisch. Es wird uns nur Tiefe in unsere Entwürfe geben. Und jetzt, um zwischen den beiden zu unterscheiden, gebe
ich ihm eine Füllung Schwarz. Und das ist in Konflikt, sagen
wir mal eine der Farben. Also gebe ich ihm die erste Farbe. Und lasst uns vorerst keinen Schlaganfall machen. Und das meine ich im Grunde mit einem einfachen Schatten. Also können wir das verringern, sagen
wir, mach fünf. Und auf diese Weise fügen wir ein bisschen Tiefe hinzu. Nun, das wird hier nicht sehr gut funktionieren. Aber für die Klasse, die wir erstellen werden, werden
Sie nach Abschluss des
Designs einen kleinen Unterschied feststellen, werden
Sie nach Abschluss des
Designs einen kleinen Unterschied feststellen wenn es um die Tiefen Ihres Designs geht. Also lasst uns das alles vorerst entfernen und beginnen, die Klasse zu erstellen. Also nenne ich diese Klasse eine Spirale. Weil wir eine Spiralform erzeugen werden. Das erste, was wir für
diese Spiralform benötigen , ist die Haupt-X- und Y-Position. Und das werden Float x und y sein.
Und weil eine Spirale im Grunde ein Kreis ist, der sich bewegt, um konzentrische Kreise zu erzeugen. Und um uns im Kreis zu bewegen, werden
wir auf mehrere Komponenten treffen. Und das sind Center x, der Mittelpunkt y, Startradius und Winkel. Also erstelle ich einfach das Center x, Center. Warum? Und dann starten Sie Radius und einen Winkel. Und jetzt initialisiere ich den Startradius und den mittleren Akzent auf y und den Winkel, in dem Sie zuerst den Startradius haben. Ich mache es zu einem Zufallswert von, sagen
wir zehn bis 30, um den Startradius zu starten, wird der Anfangskreis in dieser Spirale sein. Und dann wird center x ein Zufallswert sein, der aus dem Startradius zwei mit Minus-Startradios stammt. Und warum dann für das Zentrum? Es wird genau das Gleiche sein, aber mit der Höhe. Und schließlich wird
es für Winkel ein Zufallswert von eins bis fünf sein. Es spielt keine Rolle. Und der Grund, warum ich Winkel randomisiere oder initialisiere und überhöre, denn wenn ich das nicht tue und dann beginne ich die Spirale zu erstellen, beginnen
sie alle aus demselben Winkel. Also brauche ich ein bisschen mehr Variation in jeder der Spiralen. Und Sie können dies erreichen, indem Sie den Startwinkel randomisieren. Zeigen wir die Spirale an. Um die Spirale zu erzeugen, zeichnen wir Punkte um den Kreis, aber der Kreis oder der Radius dieses Kreises wird
zunehmen und das wird die Spirale erzeugen. Dafür können Sie entweder Punkte verwenden und dann ein Strichgewicht für die Größe verwenden. Aber hier werde ich einfach eine Ellipse benutzen, die bei x und y sein wird, und dann wird sie eine Größe haben. Also initialisiere ich auch eine Größe. Und dann füge ich eine Farbe hinzu. Wir haben bereits eine Reihe von Farben. Also werde ich es hier benutzen. Es wird auch eine zufällige Farbe haben. Ich werde hier auch keinen Schlaganfall definieren. Anstatt hier reinzukommen. Und schließlich werden wir eine Update-Methode haben. In der Update-Methode erhöhen
wir also den Winkel, damit sie sich bewegen kann. Und dann erstellen wir auch unsere X- und Y-Werte. Und sie werden den Kosinus des B-Winkels verwenden, B Zunehmender Winkel. Und dann wird y der Sinus des Winkels sein. Und dann multiplizieren wir es mit dem Radius. Und schließlich, um es in die Mitte zu bringen, wo immer
wir brauchen, müssen wir Mitte x und Mitte y hinzufügen. Epsilon y wird
also die Position
der Ellipse definieren , die um einen Kreis herum trocknet. Und dann definiert der Startradius den Radius dieses Kreises. Und dann definieren center x und center y den Mittelpunkt dieses Kreises und der Winkel wird inkrementieren. Dies wird den gleichen Kreis immer wieder um den zentralen Punkt ziehen. Was wir also tun müssen, ist den Startradius zu erhöhen. Also werde ich auch den Wert erhöhen, den ich Ink nennen werde. Und ich definiere es hier oben. Und dann füge ich es zum Startradius hinzu. Aber wir müssen es vor der Multiplikation tun. Also gehen sie hierher und erzeugen einen Fall einer Todesspirale. Kann sehen, wie es tatsächlich funktioniert, eine neue Spirale zu erzeugen. Und dann wurde innerhalb der Testversion erneut ein Update angezeigt. Also spiralförmige Punktanzeige Glenn Aufnahme , weil ich vergessen habe, die Größe zu initialisieren. Die Größe wird also ein Zufallswert für den Kick von 5 bis 7 sein. Und jetzt können wir den Beginn eines Kreises sehen. Dies wird also einen Startradius haben, und wenn es sich bewegt, erhöht
es den Radius, sodass eine Spirale erzeugt wird. Jetzt macht das Spaß und alles, aber ich denke, es wird noch
interessanter aussehen , wenn wir dieser Bewegung ein wenig Lärm hinzufügen. Anstatt also perfekte Kreise zu erstellen, fügen
wir etwas Verzerrung hinzu. Wenn ich also hierher zurückgehe, kann
ich zwei Werte hinzufügen und ich nenne einen verzerrten X und die andere eine Zeile. Und vor der X- und Y-Initialisierung. Initialisiere die Story x als Rauschen. Und machen wir es x geteilt durch eine 1000. Und dann verwende ich Angle für den zweiten. Und dann für die Lagerung. Warum? Ich mache es zum Geräusch und lass uns die Waage ein bisschen anders machen. Also schaffe ich es 3000 für diesen. Und dann verwenden wir den Winkel für den zweiten oder sogar Winkel, multiplizieren ihn mit 0,5, sagen
wir, um ihn ein bisschen zu ändern. Und das kann ich dem Winkel hinzufügen. Also verzerre ich und schreibe immer wieder dieses Grau, weil es tatsächlich den perfekten Winkel für diesen Kreis zerstört. Und dann füge ich hier Verzerrung y zur y-Position hinzu. Wenn ich es jetzt renne
und du siehst, dass es ein bisschen Geräusch in der Spirale gibt, weil wir diese Verzerrung hier hinzugefügt haben. Dies gibt ein natürlicheres Gefühl. Es fühlt sich also an, als würde jemand es tatsächlich von Hand versuchen. Sie können beide auch in Bezug auf die zweite Dimension des Rauschens gleich machen. Und das wird es nicht so sehr zerstören. So behält es immer noch die kreisförmige Form und es wird nicht mehr wie eine Ellipse. Es liegt also an dir, wie du das Bild verzerren willst. Also werden wir es so belassen. Eine weitere Sache, die wir dieser Update-Methode hinzufügen können, ist die Variation der Richtung des Winkels. Im Moment läuft alles im Uhrzeigersinn. Wir können es auch gegen den Uhrzeigersinn bewegen. Aber wir werden das sehen, wenn wir eine Reihe von Spiralen kreieren. Erstellen wir also ein Array. Ich zähle es 10. Das kommt ins Innere der Lippe. Und das Gleiche gilt für diesen. Wenn ich das jetzt mache, werden
wir mehrere Spiralen sehen. Wie Sie sehen können, gehen
sie alle im Uhrzeigersinn. Ändere das. Ich werde eine andere Variable erstellen, die ich anrufen werde, also Richtung. Und dann wird es einen Zufallswert von 0 bis eins haben. Und dann gebe ich eine Wahrscheinlichkeit von 50 Prozent, dass sie im Uhrzeigersinn gehen. Wenn also die Richtung größer oder weniger als 0,5 ist, weil 50% die Hälfte sind. Sonst brauche ich den Winkel, um in die entgegengesetzte Richtung zu gehen. Aber ich schaffe es mit der gleichen Geschwindigkeit. Und wenn ich das jetzt mache, wirst
du sehen, dass einige von ihnen im Uhrzeigersinn gehen werden, während andere das Gegenteil tun. Dieser geht also gegen den
Uhrzeigersinn, gegen den Uhrzeigersinn, und diese laufen im Uhrzeigersinn. Jetzt ist der wichtige Teil das Erstellen der Schatten, um die Tiefe zu erzeugen. Wie Sie sehen können, ist das sehr 2D. Und um das zu tun, erstelle
ich eine andere Methode, die ich Grafik aufrufe. Das wird also einen Offset haben, eine Farbe. Und überall hier werde ich diese beiden haben. Und ich werde Farbe als diese haben, nämlich C. Und dann füge ich auch den Offset wie zuvor zu x und y hinzu. Auf
diese Weise kann ich zweimal im Jahr Grafik aufrufen, einmal für den Schatten und einmal für die Hauptform. Für den Schatten nenne ich also Grafik mit, sagen
wir, einem Offset von 15 und einer Farbe Schwarz. Und dann rufe ich wieder Graphic an. Aber dieses Mal mit einem Offset von 0 und Kohle als farblich zufällige Farbe, die wir hier geschaffen haben. Wenn ich das jetzt durchführe, werden
wir einen Schatten haben, der der Spirale folgt. Lasst uns tatsächlich fünf machen. So kannst du es besser sehen. Jetzt werden Sie eine Sache bemerken , die mit dieser Form sehr falsch ist, weil wir den Schatten für jeden Punkt zeichnen. Einige der Male werden Sie feststellen, dass der Schatten über die Hauptform geht , weil er sich getrennt bewegt. Wie Sie hier sehen können, sieht
es nicht wirklich wie etwas unter der Hauptform aus. Und um das zu tun, verwenden wir P-Grafiken. Es ist also sehr einfach, dies zu beheben, da P-Grafiken es
uns ermöglichen , mehrere Ebenen zu erstellen, die sich niemals schneiden würden. Also gehen sie buchstäblich übereinander, ohne sich jemals zu treffen. Es ist also so, als würde man sich auf der Z-Achse bewegen, ähnlich wie Photoshop und Illustrator und all diesen Apps, die Ebenen verwenden. Dies ist sehr einfach zu machen. Ich werde hier einfach eine Peak-Grafikebene erstellen. Und anstatt die Füllung einfach so zu verwenden, verwende
ich die Ebene für beide. Und dann muss für jede p Grafik hier mit dem Anfang beginnen. Und dann und zeichne. Und dann passieren wir die erste Ebene für diese Ebene, die die Schattenebene sein wird, weil wir sie unten haben müssen. Und auf der zweiten Ebene wird die Hauptgrafik sein. Und dann füge ich es hier hinzu. Also brauche ich zwei Schichten. Zuerst rufe ich Layer 1 an. Der zweite Parameter geht auf Layer 2. Jetzt im Hauptregister wird sich das beschweren. Also müssen wir hier draußen auch zwei p-Grafikebenen erstellen. Der erste, den ich anrufen werde, und weil wir Arrays haben, müssen
wir auch ein Array erstellen. Also der erste, dass wir Grafiken sein werden. Es enthält also alle Hauptgrafiken. Und das wird eine UP-Grafik sein, die
die gleiche Zählung und genau das Gleiche für die Schatten haben wird . Und dann, wenn wir diese Spiralen initialisieren, werden
wir auch die Grafik oder jede Grafikebene für das Grafik-Array erstellen. Es wird Grafiken erstellen oder Grafiken erstellen. Wir behalten alle Ebenen auf der gleichen Größe wie die Leinwand, also Breite und Höhe, und dann gilt das Gleiche für Schatten. Dies erfordert die beiden Argumente, die das erste sein werden, von dem wir sagten, dass sie die Schatten sind. Und dann wird die zweite die Hauptgrafik sein. Aber wenn ich das jetzt ausführe, werden
wir nichts sehen, weil P-Grafiken nur zeigen, wenn man sie mit dem Bild trocknet. Der erste ist also garantiert Schatten an Position I und dieses Bild wird bei 000 gezeichnet da es die gleiche Breite und Höhe wie die Leinwand hat. Und dann wird das zweite Bild jede der Grafiken sein. Und es wird auch bei 000 liegen. Wenn ich das jetzt mache, werden wir sehen, dass sie alle wieder Striche haben. Also werde ich den NoStroke von hier entfernen und ich muss ihn hier hineinlegen, weil er sich innerhalb der Ebene befinden muss. Sie können es auch hinzufügen, sobald Sie die Grafik hier initialisiert haben. Aber es wird lästig sein, weil Sie schreiben, Zeichnungen
beginnen und erneut zeichnen müssen , nur um dies hinzuzufügen. Es ist also viel einfacher, es einfach hinzuzufügen, weil es zu einer weiteren Zeile wird. Und wenn ich das jetzt mache, sollte es funktionieren. Jetzt, da sich die Spirale bewegt, wird sie sich nicht überlappen. Der Schatten wird also niemals die Hauptgrafik überlappen. Lassen Sie uns weitere Spiralen hinzufügen, damit es die Seite ausfüllt. So können Sie sehen, wie sich der Schatten auf das gesamte Design auswirkt. Nachdem Sie dies ein bisschen ausgeführt haben, können
Sie etwas mehr Tiefe und das Design sehen,
anstatt können
Sie etwas mehr Tiefe und das Design sehen,
anstatt nur etwas Flaches ohne diesen Schatten zu haben, obwohl es sehr einfach und nicht sehr realistisch ist, Sie immer noch ein bisschen Dimension zu so etwas
zu sehen, kann einigen der Designs, die Sie haben, viele Interessen hinzufügen. Wenn Sie also jemals das Gefühl haben, dass Ihre Designs ein bisschen flach sind, fügen Sie einfach einen einfachen Schatten hinzu, indem Sie dieselbe Form versetzen und prüfen, ob dies behoben wird. Das ist so ziemlich genau das für die letzte Texturierungstechnik. Als nächstes werden wir die letzte Färbetechnik besprechen, und zwar mit Masken.
10. Farbe 04: Farbe mit Masken: Für die endgültige Färbetechnik besprechen
wir Masken. Wenn Sie mit der Photoshop-Maske vertraut sind, sollte dies ein Kinderspiel sein. Ansonsten folgen Sie einfach mit und es wird leicht zu verstehen sein. Jetzt ist die Idee, Masken zu verwenden, um Ihr Design zu färben, nicht unbedingt sehr konventionell. Aber so wie ich es sehe, können Sie alles programmieren, was Sie wollen, jede Grafik, die Sie wollen, sagen
wir nur zufällige Kreise auf dem Bildschirm. Und dann können Sie damit
eine Hintergrundebene maskieren , die Sie aus anderen zufälligen Kreisen erstellt haben. Auf diese Weise sieht es so aus, als würde das Design oben, das die Maske ist, von der darunter liegenden Ebene gefärbt. Grund dafür, dies als Färbetechnik zu verwenden, ist ich immer das Gefühl hatte, etwas für meine Form oder für meine Maske zu enthüllen, wenn ich in Photoshop Masken verwendete . Nehmen wir an, Sie haben eine Silhouette einer Tänzerin und
möchten dann einen Hintergrund von Sternen setzen, der eine Art ist, diese Silhouette zu färben. Es ist nicht nur schwarz oder welche Farbe das Foto hatte. Das Konzept ist also sehr einfach und die Coda ist es auch. Jetzt benötigen Sie für Masken entweder p-Grafiken oder Bilder. Nehmen wir an, Sie haben ein Bild- oder Schwarzweißbild, das Sie als Maske verwenden möchten. Sie können das importieren oder als Bild in die Verarbeitung laden und es als Maske verwenden. Aber für dieses Beispiel werden
wir nur P-Grafiken verwenden. Also werden wir die Maske mit generativer Kunst und auch der Hintergrundebene erstellen, die hier unsere Farbe sein wird. Wir beginnen zuerst mit nur einer Form in jeder Ebene, Ihnen zu zeigen, wie die Maske funktioniert. Die erste, die ich Maske nenne, und die zweite rufe ich einfach G an und dann initialisieren wir es hier drüben. Also für Maske, und es wird eine Grafik erstellen, wie wir es gerade getan haben. Die vorherige Lektion wird die gleiche Breite wie die Leinwand und die gleiche Höhe haben. Das Gleiche gilt für die Grafikebene. Und jetzt können wir unsere Formen in jeden einzelnen von ihnen zeichnen. Um also eine beliebige PSA-Grafikebene einzuzeichnen, benötigen
Sie die Start-Draw-Methode und die Draw-Methode. Und Sie müssen immer auf die Grafikebene verweisen. Also die Variable, der Name der Grafikebene. Hier heißt die von uns erstellte p-Grafikebene Mask. Also müssen wir immer wieder darauf verweisen. Also auch für den Strich, für die Füllung, für die Formen, die Sie zeichnen werden. Sie müssen immer eine Maske referenzieren. Das heißt, wenn Sie es in die Maske zeichnen möchten, wenn Sie es innerhalb von G zeichnen möchten, müssen Sie sich darauf beziehen, dass G. Und jetzt werde ich nur einen Kreis zeichnen. Und dies erfordert eine x-Position, y-Position und dann eine Breite. Und um zu trocknen, verwenden wir einfach das Bild und verweisen auf diese Ebene und positionieren es dann. Und weil es die gleiche Breite wie unsere Leinwand hat, legen wir sie einfach auf 000, damit sie zur Leinwand passt. Wenn ich das jetzt durchführe, sollten
wir diesen Kreis sehen. Als Nächstes werden wir dieses erstellen. Es wird also auch mit der beginnenden Ziehung beginnen und dann zeichnen. Und dann zeichne ich auch einen Kreis. Ich mache es ein bisschen größer, nur so und wir maskieren es, du wirst sehen, dass es kleiner wird, weil diese Maske es abschneidet. Und dann zeichnen wir es genauso wie wir die Maske gezeichnet haben. Und jetzt ist dies die Grafikebene, die G-Grafikebene, und sie befindet sich oben auf der Maske. Lassen Sie uns die Farben der beiden ändern, indem wir eine der Farben aus meinem Farbray verwenden. Ich habe dasselbe benutzt, das ich zuvor in den anderen Lektionen benutzt habe. Und um unserer Grafikebene eine Farbe hinzuzufügen, füllen
Sie einfach aus. Genauso wie wir es hier machen, innerhalb der gesamten Skizze, der einzige Unterschied darin, dass wir sie in dieser Ebene einschließen. Anstatt es einfach auf die Hauptgrafikebene zu legen, wähle
ich einfach eine der Farben aus. Es spielt momentan keine Rolle. Und ich mache NoStroke auch für beide. Denn für die Maskenebene wird, wenn Sie zuvor Masken verwenden, wenn Sie zuvor Masken verwenden,
für Weiß oder irgendetwas, das weiß ist, was sich darunter befindet, und dann wird Schwarz alles andere verstecken. Wenn Sie also einen Kreis haben, der weiß mit einem schwarzen Strich ist, dann. Was auch immer in die Nähe dieses Schlaganfalls kommt, wird versteckt sein. Also mache ich einfach einen Schlag, weil ich nicht möchte, dass es eine Maskierung beeinträchtigt. Jetzt, da wir wissen, wie sie aussehen oder wie die Maske aussieht, können
wir sie einfach hier entfernen und wir können gehen, bevor wir das Bild zeichnen, ich kann einfach eine G-Punkt-Maske machen. Verwenden Sie die Maske. Was auch immer ich maskieren möchte, ich verwende einfach die Maskenmethode und dann verwende ich die Maskenebene. Und wenn ich es renne, sollte
es jetzt kleiner sein, weil die Maske diese Form geschnitten hat. Aber wenn du genau
hinsiehst, wirst du sehen, dass es etwas klobig ist. Und der Grund dafür ist, dass wir keinen Hintergrund für die Ebene oder für
eine der Ebenen haben. also für die Maskenebene Fügen
wir also für die Maskenebene einen schwarzen Hintergrund hinzu, weil wir dort etwas verstecken wollen, denn wenn wir es weiß setzen, wird alles angezeigt. Also mache ich jetzt einfach 0 für Schwarz, Bilder viel schärfer, weil wir den Hintergrund zurückgesetzt haben und wir das Gleiche dafür tun können. Dies wird jedoch hier nicht angezeigt, da die Maske kleiner
ist als diese Ebene, die zu maskieren versucht. Wenn der Kreis jedoch kleiner ist als, können
wir die Farbe dahinter sehen. Also wenn ich einen roten Hintergrund setze, oder sagen wir das als Farbe aus dem Array. Sagen wir also die zweite Farbe im Array. Und dann mache ich das viel kleiner. Also mache ich das größer und dann mache ich das zu 100. Also habe ich einfach die Größe gewechselt. Und wenn ich es jetzt starte, sehe ich tatsächlich die Hintergrundebene für diese Grafikebene. Also haben wir unseren Kreis innerhalb der Maske mit allem gefärbt, was sich im Hintergrund befindet. In diesem Beispiel scheint es nicht intuitiv zu sein, all dies zu erstellen, nur um
zwei Kreise verschiedener Farben zu erstellen , die wir mit nur zwei Codezeilen hätten erstellen können. Dies wird jedoch von Vorteil sein, wenn Sie etwas im Hintergrund bewegen und nur
ein Maskottchen mit einer Reihe zufälliger Kreise oben haben möchten . Wenn ich also zu jeder dieser Ebenen zurückkehre und anstatt nur einen Kreis für jeden zu erstellen, erstelle
ich dort eine Reihe von Kreisen. Für diesen erstellen wir ein Array. Und lassen Sie uns nur eine zufällige Zählung geben, die ich hier initialisieren werde. Ich behalte sie vorerst alle gleich groß. Aber Sie können die Größen auch randomisieren. Also wenn ich die Maske nur ein bisschen entferne und
die Positionen von 0 auf Breite und dann von 0 auf Höhe randomisiere . Oder Sie können auch, wenn Sie dies hier als Radius definieren, dann kann er aus Bezug auf den Durchmesser tun, denn das ist es, was es tatsächlich ist. Und dann vom Durchmesser geteilt durch zwei zu was? Minusdurchmesser geteilt durch zwei. Und das Gleiche geht hier rüber. Und jetzt haben wir eine Reihe von Kreisen. Lassen Sie uns ihnen also tatsächlich verschiedene Farben geben. Und lasst uns die Hintergrundfarbe machen. Die, die ich hier definiert habe, also versteckt sich das Blau nicht. Lasst uns das auf vielleicht 50 erhöhen. Wir haben also noch viel mehr. Wenn ich nun die Maskenebene offenlege, sollten
wir in der Lage sein, diesen Kreis zu färben. Lassen Sie uns auch dasselbe für die Maske erstellen. Und lasst es uns kleiner machen. Anstatt nur einen Kreis zu haben, machen
wir zufällige und wir brauchen die zufällige Füllung nicht da sie alle weiß sind, um zu zeigen, was darunter liegt. Und lasst uns das hier neu definieren, damit wir keine Duplikate haben. Und ich habe vergessen, das in eine Maske zu ändern. Jetzt sollte es klappen. Und der Grund, warum dies passiert, wo Sie nicht wirklich sehen, wo die Dinge beginnen und enden, liegt
darin , dass mein Hintergrund für die eigentliche Leinwand die gleiche Farbe hat wie der Hintergrund für diese Grafikebene. Wenn ich das also ändere, sagen
wir 30, wer wird eine dunkelgraue Farbe haben. Und Sie können die Maske und die darunter liegende Ebene sehen. Und lassen Sie uns auch eine andere Zählung für Masken erstellen. Deshalb habe ich dies als Färbetechnik hinzugefügt, weil Sie sehen können , dass Sie jede Form, die Sie in der Maskenebene erstellen, unabhängig vom Design, ob sie sich bewegt oder statisch befindet
, sie auf einzigartige Weise einfärben können, weil Sie eine andere Ebene, die sich ebenfalls bewegen kann, wenn Sie möchten, dass sie animiert werden soll. Aber für dieses Beispiel machen
wir nur statische Bilder. Es gibt ein anderes Beispiel oder eine andere Art, wie ich Ihnen zeigen möchte, wie wir das maskieren können. Statt nur zufällige Kreise erstellen
wir eine Spalte mit Zeilen. Es wird nicht anders sein. Es ist nur ein anderes Beispiel, das ich zeigen möchte. Statt dessen gehen wir in die Schlange. Und es wird keine Methode ohne Schlaganfall haben, aber es wird keine Füllung haben. Aber selbst wenn ich das nicht setze, weil Linien nur einen Schlaganfall nehmen, wirkt sich
dies auf nichts aus. Aber ich möchte es einfach haben, falls ich etwas ändere oder etwas erneut höre oder hinzufüge, das eine Füllung erfordert, und ich möchte nicht, dass es eine Füllung hat. Also erstelle ich eine Linie oder lass uns den C-Kreis behalten. Und dann kommentiere ich es einfach und erstelle hier eine Zeile. Ich möchte also, dass jede der Zeilen von 0 auf die Breite wechselt und sich dann über die Höhe des Bildschirms erstreckt. Also brauche ich nur eine Zellhöhe oder ich muss eine Zellhöhe basierend auf dem Zähler
definieren, den ich habe. Also werde ich einfach schweben. Zellenhöhe entspricht der Höhe des Bildschirms geteilt durch den Schwimmer von m count. Das heißt, wenn ich es nicht zum Schweben gebracht habe, Ja, ich habe sie Ganzzahlen gemacht. Und dann wird
es für die Expositionen statisch sein. Das einzige, was sich ändern wird, ist die y-Position. Für x gehen wir also von 0 auf die Breite. Und dann füge ich das y hinzu. Für jede der Seiten ist jeder Punkt der Linie frei. Also machen wir es, ich multipliziert mit der Zellenhöhe. Und das Gleiche geht hier rüber. Und weil der Strich standardmäßig schwarz ist, wird
dies nichts zeigen. Ich muss die Maske ändern, um zu maskieren, zu weiß streichen. Und es wird auch das Strichgewicht basierend auf der Zellhöhe definieren. Also mache ich die Zellenhöhe geteilt durch zwei, weil ich nicht möchte, dass sie den gesamten Bildschirm abdeckt. Wenn ich es als Zellenhöhe biege und wir nur den gesamten Bildschirm abdecken, zeigen Sie die gesamte Hintergrundebene an. Und dann können wir es auch hier zeigen, um zu überprüfen, wie es aussieht, bevor wir die Maske benutzen. Reduzieren wir also die Anzahl der Zählungen. Wenn ich 10 mache und auch eine Marge hinzufüge. Also lege ich es hier rüber. Und der Grund, warum ich diese auf
meine Formen setze , die ich erstelle, liegt nur darin, dass ich möchte, dass sie geschlossen werden. Also weiß ich, dass sie zu diesem gehören und ich weiß, dass ich sie nirgendwo anders ändern werde. Es wird nur für diesen Fall sein, aber zögern Sie nicht, sie hier als globale Variablen zu platzieren. Also machen wir für die Marge 50 und dann mache ich das von Rand und dann Breite minus Rand. Und dann möchte ich, dass dies durch die Zellenhöhe geteilt durch zwei geschoben wird. Und das Gleiche gilt dafür. Sie können also auch eine Variable dafür erstellen, da wir jetzt duplizieren. Und um unseren Code sauber zu halten, sollten
wir ihn einfach zu einer Variablen machen. Also nenne ich es
Lichtposition Lichtposition k. Die Händler sind zu groß, also machen wir sie 20. Und jetzt müssen wir die Maske nicht mehr zeigen und verwenden wir die Maskenmethode. Und voila, die Verwendung von Masken macht wirklich Spaß in der generativen Kunst, weil Sie in der Lage sind,
die Maske und die Hintergrundebene gleichzeitig zu erzeugen und eine zu verwenden, um die andere zu verstecken. Ich habe auch ein YouTube-Tutorial zu etwas Animiertem, sei im Hintergrund hinter diesen Masken. Wenn Sie also daran interessiert sind, zu sehen, wie das erstellt wird, dann schauen Sie sich das Video an. Aber für diese Beispiele versuche
ich, sie statisch zu machen, nur um mich auf die Techniken zu konzentrieren als sich auf die Animation zu konzentrieren oder die Beispiele zu erschweren. Das ist alles, was wir heute über diese Farb- und Texturierungstechnik lernen müssen. Für die nächste Lektion erstellen
wir ein Projekt, erstellen
wir ein Projekt einige der Techniken
verwendet, die wir in den Lektionen verwendet haben.
11. Abschlussprojekt: Jetzt, da wir mit allen Techniken fertig sind, werden
wir in ein Projekt eintauchen. Für Ihr Projekt kombinieren
Sie also zwei bis drei Techniken aus den Lektionen davor, entweder indem Sie eines von vielen Beispielen aus einer der Lektionen verwenden und eine weitere Technik
hinzufügen oder ein eigenes Beispiel erstellen. Für mein Projekt kombiniere
ich also Schatten und die erste Texturierungstechnik, der meine eigenen Formen erstellt werden. Und ich werde zufällige Papiere erstellen, die auf dem Bildschirm verstreut sind. Also werde ich, Papiere werden keine normalen Rechtecke sein. Einige von ihnen werden zerrissene Papiere sein, da ich weiß, dass das Papier eine rechteckige Form hat.
Meistens werde
ich eine Funktion erstellen, die zunächst vier Parameter hat, und ich nenne es einfach Papier. Die vier Parameter sind also identisch mit jedem Rechteck. Um x zu schweben, schwimmt y, schwimmt Breite und nach links schweben, weil ich möchte, dass ein Teil des Papiers von der unteren Kante gerissen wird. Ich erstelle das Papier mit Scheitelpunkten. Und das beginnt immer mit Begin-Shape und endet mit einer Form. Also fange ich damit an. Und dann weitere Scheitelpunkte. Der erste wird von der oberen linken Ecke sein, und das wird unsere Haupt-X- und Y-Position sein. Das ist also x und y. Und dann bewegen wir uns nach rechts und dann nach links, und dann schließen wir die Form. Um also nach rechts zu gehen, bedeutet
das, dass wir uns um die Breite von der Exposition bewegen werden. Also werden wir hier W oder die Breite hinzufügen. Mach die Exposition und dann wird y gleich bleiben. Und dann werden
wir für den dritten bleiben, wo wir gerade sind, auf der X-Achse und dann auf der Y-Achse können wir die Höhe hinzufügen, weil wir nach unten gehen. Und schließlich gehe ich zurück nach links, aber wir sind so Dan,
also gehen wir auf der X-Achse zurück zu x, aber auf der Y-Achse bleiben wir bei der gleichen, die wir zuvor hatten. Und jetzt färben wir uns hier auf. Also lasst es uns auf 00 sagen, und dann machen wir es 100 mal 100 und 150. So sieht ein rechteckiges normales Papier aus. Aber dafür wollen wir dem Papier einen Riss hinzufügen. mich von der ersten Lektion an erinnere, weiß
ich, dass ich
jetzt eine Lösung brauche , um wie viele Punkte ich für die Tarife benötigen werde. Und ich muss auch die Positionen jedes Punktes initialisieren , damit ich sie mit
dem ersten
und letzten verbinden kann , weil ich gekrümmte Scheitelpunkte anstelle von Scheitelpunkten verwende. Und da wir von der ersten Lektion an wissen, dass wir
einige Kontrollpunkte benötigen werden, sind einige der Kernscheitelpunkte, um diesen Punkt zu erkennen. Also erstelle ich ein p-Vektor-Array. Ich nenne es Positionen oder POS. Und dann wird es eine lange Auflösung haben. Und das muss eine Ganzzahl sein, da dies nichts anderes als eine Ganzzahl zulässt. Und dann brauche ich den Abstand zwischen jedem dieser Punkte. So wie das Erstellen eines Rasters. Beende also den Kreis. In der ersten Lektion mussten wir den Winkel machen, aber für diese werden wir nur die Leerzeichen zwischen jedem Punkt machen. Und das können wir einfach tun, indem wir eine Variable erstellen. Und es wird die Breite des Papiers sein, geteilt durch den Schwimmer der Auflösung. Und wir wandeln diese in Float um, weil wir eine genauere Division wollen. Und dann werden wir eine for-Schleife verwenden, um diese Positionen zu erstellen. Die Exposition für jeden von diesen wird also sein, ich multipliziere sie mit dem Abstand. Genau wie das Erstellen eines Rasters. Und die y-Position für diesen wird die Höhe sein. Das hier. Jetzt erstelle ich diese Positionen, indem ich eine neue Instanz
der p-Vektorklasse erstelle und jede einzelne an ihrer jeweiligen x-Position und Y-Position hinzufüge. Jetzt, da dies initialisiert ist, können
wir es hier verwenden. Dies wird also im selben Raum wie dieser gehen. Aber weil ich auch möchte, dass dies existiert, erstelle
ich hier eine wenn bedingte. Und ich werde prüfen, ob die Auflösung größer als 0 ist, dann möchte ich die Kurvenscheitelpunkte machen. Ansonsten wollte ich das machen. Wenn also die Auflösung 0 entspricht
, möchte ich, dass dies anders passiert. Und eliminiert einfach alle negativen Werte, die ich sonst machen werde, wenn Raz größer als 0 ist, können
Sie auch das Gegenteil tun, aber dies dient nur dazu, negative Werte zu eliminieren. Jetzt erstellen wir eine for-Schleife. Aber weil wir hier von rechts nach links gehen, gehen
wir von der letzten Position im Array zur ersten Position. Und das wird sein, wenn ich der Auflösung minus1 entspricht. Die endgültige Position im Array zu I
oder die Bedingung wird sein, wenn ich größer gleich 0 ist, also gehen wir auf 0, und dann werden wir dekrementieren, anstatt zu erhöhen. Dies geht einfach in die entgegengesetzte Richtung unserer normalen for-Schleife. Und jetzt rufen wir die Methode „Kurve Red Text“ auf. Und das wird Position sein, in der ich x punkte und dann Position habe ich y. Also bekomme ich den p-Vektor und bekomme dann die Exposition und bekomme dann die Y-Position für das y. Und jetzt fügen wir den fünften Parameter oder das fünfte Argument in unser Papier hinzu -Methode. Und versuchen wir 0, um sicherzustellen, dass alles gut funktioniert. Und dann lasst uns fünf versuchen bevor wir weitermachen und formen, weil wir die Form nicht geschlossen haben, wir können einfach Kleidung nennen. Und es wird vom letzten zum ersten Punkt gehen. Und jetzt wirst du sehen, dass es schließt. Aber wir haben hier ein Problem, weil wir am Ende keinen Kurvenscheitelpunkt
haben, der sich mit diesem verbindet. Also nenne ich am Ende einfach den gekrümmten Scheitelpunkt hier drüben. Und das wird Position 0, x und y sein.
Und jetzt haben wir ein Rechteck. Der Grund, warum wir vor diesem hier drüben keinen brauchen, wie wir es mit dem Kreis getan haben,
ist, dass wir bereits Scheitelpunkte davor haben. Bs zählt also als, oder dieser zählt spezifisch als anderer Kontrollpunkt für
den aktuellen Scheitelpunkt oder den vorherigen Kontrollpunkt für den ersten Kurvenscheitelpunkt hier drüben. Um zu sehen, dass wir hier tatsächlich mehrere Punkte haben, können
Sie entweder die Farbe der Scheitelpunkte hier ändern
oder was wir tun werden, ist einen Y-Offset hinzuzufügen und wir machen es hier. Y-Offset wird also ein Zufallswert von negativen zwei bis zwei sein. Und dann fügen wir es diesem hinzu. Wenn ich das jetzt auf 15 erhöhe, sehe ich mehr. Ich möchte etwas ausgefalleneres machen. Und das fügt den Y-Offsets eine Sinuswelle hinzu. Neben der Randomisierung. Dafür füge ich zwei Variablen hinzu, die Sie normalerweise mit jeder Sinuswelle verwenden, und das wird Frequenz sein. Und ich gebe ihm einen Wert von 100 und dann Amplitude. Und ich gebe dem einen Wert von fünf. Und dann machen wir noch eine Sinuswelle. Weil ich möchte, dass die Welle am Ende der Seite geht. Ich multipliziere ich mit der Frequenz für den Winkel. Und dann multipliziere ich das mit der Amplitude. Und Sie müssen dies nicht in Klammern setzen, da Multiplikation vor jeder Addition stattfindet. Es gibt also eine Hierarchie, in der wir keine Klammern vier brauchen. Und wenn ich das jetzt durchführe, sollten wir eine Sinuswelle haben. Wenn ich das auf fünf reduziere, bekommen
wir eine Sinuswelle. Wenn ich das auf 115 erhöhe, dies auf 200, und dann erhöhe ich dies auf 15. Jetzt können wir die Sinuswelle etwas besser sehen. Wenn Sie möchten, dass die Amplitude höher ist, können
Sie dies einfach erhöhen. Und die Amplitude ist im Grunde die Höhe jeder der Wellen. Und dann ist die Frequenz, wie häufig die Welle ist. Wenn wir es also bei 200 haben
, kriegen wir mehr Wellen. Und wenn wir es bei 50 haben, wird es weniger Wellen bekommen. Ich behalte es bei Hunderten und das um fünf Uhr. Und unser ähnelt gezeichnetem Papier. Jetzt fügen wir mehr Papier hinzu und randomisieren es über den Bildschirm. Also könnte ich einfach nicht in eine Schleife hineingehen. Und ich initialisiere die Zählung für die Positionen. Ich werde sie zufällig von 0 bis zur Breite und dann zufällig von 0 auf die Höhe machen. Wenn ich das mache, wird es ein Durcheinander sein, weil wir auch vergessen haben, diesen Positionen x und y hinzuzufügen. Sie können also entweder hier plus x hinzufügen oder hier addieren. Und das wird y hinzufügen. Und wenn ich das jetzt führe, sollte
es einwandfrei funktionieren. Jetzt zum Schatten füge ich diese ganze Sache noch einmal hinzu. Mit einem Offset können
Sie jedoch eine Funktion erstellen, um die Papierform und dann den Schatten dafür zu erstellen. Aber ich werde es einfach innerhalb meiner Papiermethoden machen. Und wie wir wissen, muss
der Schatten zuerst gehen, denn was auch immer zuerst
geht, er wird unter dem Code liegen, der danach kommt. Das wird also der Schatten sein und ich werde ihn mit Push und Pop ausgleichen. Und dann mit den Übersetzungsmethoden isolieren
einige die Bewegung für diese oder die Übersetzung für diese. Und dann übersetze ich und wir machen einen x-Offset und einen Y-Offset. Also lasst uns 33 machen. Und dann ist
der Grund, warum Sie die persische Not Push-Matrix verwenden, dass ich
dadurch die Stile und die Übersetzung oder die Transformation pushen kann. Und dann füge ich die Füllung hinzu. Für den Schatten wird die Füllung diese Farbe haben. Und dann wird meine Zeitung weiß. Wenn ich das jetzt mache, sollten
wir sehen, wie sich ein Schatten bildet. Und dann mache ich hier oben NoStroke für alle von ihnen. Außerdem macht der Schatten das Papier vor dem Hintergrund sichtbar oder erhöht den Kontrast zwischen den beiden. Wenn Ihr Hintergrund eine helle Farbe wie meiner hat, aber wenn Sie einen Strich verwenden
möchten, können Sie dies gerne tun. Natürlich. Auch ich habe hier Farbe hinzugefügt. Wenn Sie möchten, wenn Sie verschiedene Farben für das Papier hinzufügen möchten, werde ich es nicht verwenden. Ich wollte dir nur zeigen, dass du das kannst, wenn du willst. Und dann habe ich ein,
ein Array für eine Textfarbe hinzugefügt , wenn Sie das auch randomisieren möchten. Darum füge ich später noch eine Farbe hinzu. So können wir sehen, dass Sie die Farbe für den Text randomisieren können. Wir können auch die Höhe des Papiers randomisieren. Ich nenne es Papierhöhe und wir fügen es hier hinzu. Die Papierhöhe wird also ein Zufallswert sein und ich schaffe es von 180 bis 30. Und die Breite werde ich bei 150 fixieren. Jetzt lasst uns das laufen lassen. Und weil wir die Papiere von der oberen linken Ecke ziehen, werden
wir nicht sehen, wie sie von oben links über das Gleichgewicht gehen, aber wir werden sehen, wie sie nach rechts oder unten gehen. Um das zu vermeiden, entferne
ich von hier die Papierbreite und die Papierhöhe von hier. Also ändere ich das in Papierbreite. Es ist eine gute Praxis, wenn Sie sehen, dass
sich Dinge wiederholen, um einfach eine Variable für sie oder eine Funktion zu erstellen. Und dafür ist die Papierbreite gleich 150. Und jetzt sollten sie die Grenzen nicht überschreiten. Erstellen wir nun den Text innerhalb der Papiere. Dafür erstelle ich eine Methode namens text. Und es wird eine Reihe von Zeilen haben. Und ich habe das alles vorher skizziert, damit ich weiß, welche Parameter ich brauche. Also alanin eine Reihe von Zeilen, weil ich das randomisiert habe. Und dann brauche ich auch eine Ausstellung, weil ich wissen möchte, wo es in meiner Zeitung anfängt. Und dann brauche ich eine Y-Position. Und natürlich wird es für jede der Linien eine Breite und eine Höhe benötigen. Und schließlich brauche ich Seitenränder und Top-Margen. Und der Grund, warum ich diese trenne, denn manchmal sieht man, dass die oberen Ränder etwas größer sind und einige Notizbücher. Also werde ich einen Seitenrand und dann eine Top-Marge haben. Und ich fülle sie mit den Farben hier drüben auf. Also habe ich ein anderes Array erstellt, das ich Textfarben nenne. Es hatte vorher nur eine Farbe, aber jetzt habe ich alles kopiert, was hier drin war. Wir brauchen das nicht mehr, aber wenn Sie auch verschiedene Farben für das Papier haben möchten, können
Sie tiefere Farben anzeigen. Aber ich werde zufällig und nur die Textfarben. Und ich entferne die Hintergrundfarbe, weil dies dieselbe ist. Also haben wir nichts oder ein Papier, als wäre es ausgeschnitten worden. Also nehme ich einfach diese Farben. Und die meisten dieser Farben sind die gleichen wie die, die wir zuvor verwendet haben. Sie können diese Farben ebenfalls pausieren und kopieren. Jetzt gehe
ich zurück und werde die Farben für den Text randomisieren. Jedes Papier hat also einen anderen Farbtext. Und dafür verwende ich genau das, was ich zuvor mit der Randomisierung benutzt habe. Also geht es nur zur Randomisierung „Index“. Und es muss eine Ganzzahl sein, da random einen Float erzeugt und der
von 0 bis zur letzten Position im Array
liegt, weil wir eine Reihe von Zeilen haben werden. Es wird dem Erstellen von Zeilen innerhalb eines Rasters ähnlich sein. Also erstellen wir eine Schleife, die von 0 bis zur Anzahl der Zeilen reicht. Weil es nur entstanden ist. Wir erstellen nur eine Variable, die ich Texthöhe nennen werde. Und das wird sein, dass ich es mit der Höhe multipliziere, die ich ihm geben würde. Also die Höhe jeder Zeile. Und sie zeichnen einfach ein Rechteck. Das Rechteck wird also von x plus Seitenrand ausgehen. Es ist also so, als würde ich an den Seitenrand drängen, den ich initialisiere oder den ich hier mit einem Argument initialisieren werde. Und dann wird
es für y plus Texthöhe plus der obere Rand sein. Also werden wir jeden einzelnen von ihnen um die Texthöhe schieben. Und es wird jedes Mal anders sein, weil es mit dem I. multipliziert wird. Und dann wird der obere Rand gleich sein, also wird es alles nach unten schieben. Und dann multipliziert die Breite minus Seitenrand mit zwei, weil wir ihn um einen Seitenrand drücken, müssen
wir
zwei Seitenränder von dieser Seite subtrahieren , weil sie um eins geschoben werden. Und schließlich wird es eine Höhe haben, die hier angegeben wird. Und lassen Sie uns die Breite und Höhe nach unten drücken, damit der Code viel sauberer und einfacher zu lesen ist. Jetzt nenne ich es innerhalb der Papiermethoden. Und ich gebe ihm fünf Zeilen. Also werde ich es zuerst nicht randomisieren. Sie können also sehen, ob es irgendwelche Probleme gibt. Und dann wird es die gleiche Exposition wie das Papier annehmen, dieselbe Y-Position wie das Papier, gleiche Breite wie das Papier. Und dann wird es eine bestimmte Höhe haben. Also mache ich fünf. Und für den Seitenrand schaffe
ich es 10. Und dann schaffe
ich es für die oberste Marge 30. Wenn ich das jetzt ausführe, werden
wir ein kleines Problem in unserem Code sehen. Und das ist, dass es keinen Zeilenabstand gibt. Es gibt also keinen Abstand zwischen den Zeilen. Das ist normalerweise, dass sie in echtem Text sind. Also müssen wir die Texthöhe hier mit zwei multiplizieren. Dadurch wird sichergestellt, dass wir eine Texthöhe und dann ein Leerzeichen zwischen den einzelnen Zeilen haben, das der Texthöhe entspricht. Sie können auch einen anderen Zeilenabstand von der Texthöhe erstellen, die Sie angeben können. Sie können es zu den Parametern hier hinzufügen. Wenn Sie nicht möchten, dass es den gleichen Zeilenabstand wie die Texthöhe hat. Aber ich werde es gleich behalten. Und wenn ich es jetzt führe, werden wir einen besseren Text sehen. Aber ich denke, es wird schöner aussehen, wenn ich das randomisiere. Da wir also eine ganze Zahl haben, müssen
wir sie in eine Ganzzahl umwandeln und es wird eine
Zufallszahl von zwei bis sieben machen , sagen wir mal. Und jetzt ist es ein bisschen realistischer. Ich meine, es ist immer noch sehr grafisch und nicht realistisch. Aber ich denke, wenn du so etwas randomisierst, wird es schöner aussehen. Und ich werde auch die Anzahl der Papiere hier reduzieren. Und dann füge ich dem Papier etwas Rotation hinzu. Normalerweise, wenn Sie einen Stapel Papier auf dem Boden oder auf einem Tisch sehen, wird
es nicht die gleiche Drehung haben. Also mache ich das mit Push und Pop für eine Transformation. Also mache ich einfach Push und du kannst
Push-Matrix machen , weil wir hier keine Styles machen werden. Und dann werde ich das auch bereinigen und dann füge ich die Pop-Methode hinzu. Und dann übersetze ich zuerst. Und ich übersetze auf diese Positionen. Das wird also 0, 0 sein. Jetzt können wir das zurückbringen. Und der Grund, warum ich übersetze, ist dass sich die
Rotation von der Ecke der Seite aus drehen wird. Und wenn ich nicht für jedes Papier übersetze, dreht
es sich vom Null-Null-Punkt der Leinwand. Was ich hier mache, schiebe
ich stattdessen die Leinwand an die Ecke des Papiers. Wenn ich mich drehe, drehe
ich das Papier von diesem Punkt an. Wenn ich mich jetzt drehe,
mache ich eine zufällige Rotation von negativem Quartal Pi. Wahrer Quartal Pi. Weil ich nicht so viel Rotation brauche, kannst
du auch eine vollständige Rotation machen, wenn du willst. Lass es uns also laufen lassen und sehen, was passiert. Jetzt sieht es natürlicher aus. Selbst wenn ich 10 habe, wird
es nicht viel zu voll aussehen. Schließlich werde ich zufällig die Art von Papieren festlegen, die ich muss. Ich will nicht, dass sie alle Terrorismus haben. Ich möchte, dass einige von ihnen makellos sind. Also werde ich eine Zufallszahl erstellen, die nur zwei Staaten hat. Man wird also sein, wenn r größer als 0,5 ist. Es wird also eine Chance von 50 Prozent sein, dass jede Art von Papier erscheint. Und dieser wird derselbe sein, aber mit einer Auflösung von 0. Und jetzt habe ich etwas volles Papier und etwas zerrissenes Papier, und das ist es so ziemlich. Ich habe die Techniken verwendet, die wir in den Lektionen gelernt haben. Eine fügt Ihren Formen Textur hinzu und die andere fügt Schatten für mehr Tiefe hinzu. Jetzt sind Sie dran, Ihr eigenes Projekt zu erstellen. Wählen Sie zwei bis drei Techniken aus, um eines der Beispiele zu erstellen, die wir in einer der Lektionen
erstellt haben , oder um Ihre eigenen Projekte zu erstellen, wie ich es hier getan habe. Sie müssen keine Farbtechnik und keine Texturtechnik verwenden. Aber wenn du das machen willst, dann tu es bitte. Aber zögern Sie nicht, einen von ihnen zu wählen, damit Sie am Ende
süße Extrem-Technik oder sogar drei Farbtechniken machen können. Wenn ich in diesem Beispiel eine weitere Färbetechnik hinzufügen wollte, würde
ich die Masken hinzufügen und
ein Papierbild oder eine Papierstruktur nehmen und jedem der Papiere hinzufügen. Auf diese Weise können Sie eine andere Farbe für
die Papiere haben als das Weiß mit ein wenig Textur. In der Masken-Färbetechnik haben wir also die Grafik
aufgehoben, eine für die Maske und eine für die Formen. Aber
wenn ich für dieses Beispiel eine Papierstruktur hinzufügen wollte, dann wird die Maske die P-Grafik in der Form sein oder was auch immer massiert wird, wird Papier oder
die Textur sein , die Sie laden werden ein Bild in Ihre Projekte. Wenn Sie dieses Projekt für Ihr abschließendes Projekt verfolgen möchten, haben Sie Angst, dies zu tun, aber ich würde empfehlen, ihm eine weitere Dimension hinzuzufügen. Eine andere Sache, die ich zu diesem Projekt hätte hinzufügen können, sind Hintergrundelemente, wie zum Beispiel ein Raster, um einen Fliesenboden zu erstellen. Sie können auch ein Hintergrundbild von Holzboden oder einer beliebigen Texturtabelle hinzufügen. Und Sie können dies definitiv mit jeder der Codierungstechniken einfärben. Vielleicht nicht die Färbung nach dem Hintergrund, aber wenn Sie andere Begriffe für das Papier haben möchten, können Sie
vielleicht die Farbinterpolationsmethoden
mit einer gewissen Randomisierung verwenden , wie wir es bei der ersten Färbetechnik getan haben. Oder Sie können nach Entfernung färben, um möglicherweise klangliche Unterschiede in der Papierfarbe zu ergeben, aber nicht unbedingt mit zufälliger Farbinterpolation, Art der Nachahmung des Sonnenlichts,
das in den Raum gelangt , und einige der verschiedenen Papiere färben farbe. Und natürlich sind all dies nicht sehr realistisch, aber trotzdem ist es etwas, das Sie Ihrem Kunstwerk hinzufügen können. Wenn Sie Fragen zu dieser Lektion oder einer der anderen Lektionen haben, lassen
Sie es mich bitte in der folgenden Diskussion wissen. Ansonsten kann ich es kaum erwarten, Ihre Projekte zu sehen. Vielen Dank, dass Sie diesen Kurs besucht haben, und wir sehen uns in einem anderen.