Einführung in die Generative Kunst in Processing | Hadeel Alharthi | Skillshare
Suchen

Playback-Geschwindigkeit


  • 0.5x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 2x

Einführung in die Generative Kunst in Processing

teacher avatar Hadeel Alharthi, Creative Coder and Artist

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Einführung

      0:54

    • 2.

      Programmiergrundlagen

      2:46

    • 3.

      Einführung in die Verarbeitung

      5:21

    • 4.

      Durchsetzung der Dokumentation

      2:13

    • 5.

      Planung des Raster

      1:58

    • 6.

      Erstellen des Raster

      6:53

    • 7.

      Farbe hinzufügen

      3:28

    • 8.

      Randomisierung

      3:09

    • 9.

      Randomisieren fortgesetzt

      6:45

    • 10.

      Den Fluss steueren

      6:00

    • 11.

      Exportieren des Designs

      3:32

    • 12.

      Bearbeiten des Designs in Adobe Illustrator

      1:39

    • 13.

      Deine Aufgabe

      0:57

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

1.644

Teilnehmer:innen

36

Projekte

Über diesen Kurs

In diesem Kurs lernst du die Fähigkeiten zum Programmen und ein qualitativ hochwertiges Generation.

Durch den Abschluss dieser Kursen kannst du für dein Projekt ein Raster erwachsen und ein farbenfrohes colorful für dein Projekt entwickeln. Du erfährst, wie du eine Vektordatei erstellst, die hochwertige Bilder oder weitere Manipulation in Software wie Adobe Illustrator für eine Vielzahl von Anwendungen ermöglichen wird.

Der Kurs richtet sich hauptsächlich für Künstler:innen aller Niveaus Programmieren sind nicht erforderlich.

Triff deine:n Kursleiter:in

Teacher Profile Image

Hadeel Alharthi

Creative Coder and Artist

Kursleiter:in

ABOUT

Hi! I'm Hadeel, and this is my humble digital abode. I'm a creative coder and artist whose sole passion is to learn all there is to know about generative art — or rather the digital art world in general. I'm curious by nature, and I love to share my findings. So if you're interested in learning generative art, this is the place to be. Welcome!

 

HOW TO NAVIGATE THE COURSES

If you're new to generative art, I recommend starting with either Back to the Basics or Intro to Generative Art. The latter is a much shorter course for anyone with too little time on their hands. Next, I'd go with Switches since that showcases my whole process, from ideating to the final design. The rest you can follow in any order since yo... Vollständiges Profil ansehen

Level: All Levels

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Einführung: Hallo, alle. Ich bin Hadeel, und das ist Intro zur Generativen Kunst. In dieser Klasse lernen wir die grundlegenden Konzepte der Programmierung und einige Verarbeitung spezifischer Funktionen, um dieses generative Kunstwerk zu schaffen. Die Verarbeitung ist eine Java-basierte Sprache, und es ist eine der einfachsten Möglichkeiten, zu lernen, wie man geht. Es bietet nicht nur die Möglichkeit, eine weit verbreitete Sprache zu lernen, sondern liefert auch sofortige visuelle Ergebnisse. Wir verweisen auch auf die Seite der Verarbeitungsdokumentation , um zu demonstrieren, wie Sie das Beste aus der Verarbeitung herausholen können, was Ihnen bei der Erstellung Ihres Projekts sicherlich helfen wird. Darüber hinaus werde ich Ihnen zeigen, wie Sie eine Verarbeitungsbibliothek verwenden , um die Ergebnisse in ein Vektorformat zu exportieren. Eine gute Möglichkeit, Bilder in hoher Qualität zu speichern oder die Arbeit mit Software wie Adobe Illustrator weiter zu bearbeiten. Am Ende dieser Klasse sollten Sie in der Lage sein, ein Originalstück zu programmieren und zu produzieren. Sie werden Ihr schickes Zertifikat sein, um der Welt zu präsentieren. Lasst uns loslegen. 2. Programmiergrundlagen: Zuerst müssen Sie die grundlegenden Konzepte jeder Programmiersprache kennen , um diese Klasse durchlaufen zu können. Sie sind sehr leicht zu verstehen und mit der Praxis können Sie ein generatives Design pro Tag mit diesen erstellen. harte Codierung jeder Genauigkeitswerte, Größe oder Farbe kann zu einer langwierigen Aufgabe werden, besonders wenn Sie Werte für ein Array von Formen bearbeiten müssen, deshalb brauchen wir etwas, das Variablen genannt wird. Eine Variable ist einfach ein Name, den Sie für einen Wert festlegen, um ihn im Speicher zu speichern, um ihn im gesamten Programm zu verwenden. Sie beispielsweise WennSie beispielsweiseden Radius des Kreises festlegen möchten, geben Sie CircleRadius gleich 100 ein, wie bei 100 Pixel. Jetzt das Programm verstehen, dass CircleRadius ist ein 100 Pixel, weil wir es definiert. Bei der Verarbeitung fehlt dieser Anweisung jedoch ein sehr wichtiges Schlüsselwort, was bedeutet, dass Ihr Programm einen Fehler auslösen kann. Das Schlüsselwort ist int. Int steht für ganze Zahlen, und es ist einer der Datentypen der Verarbeitung. Es gibt mehrere Datentypen in der Verarbeitung, die Sie in Ihren Programmen verwenden können, wie int für ganze Zahlen, float für Dezimalzahlen, Zeichenfolge für Text, Zeichen für Zeichen, Boolean für true und false Werte, Farbe für Farbtöne, Arrays für geordnete Listen und Wörterbücher für Schlüsselwertelisten. In diesem Kurs werden nur ganze Zahlen, Gleitkommazahlen, Arrays und Farben verwendet . Da wir ein Raster erstellen, bedeutet dies, dass wir eine Reihe von Formen auf der Leinwand zeichnen werden, was wie eine Menge Arbeit scheint, bis Sie mehr über Schleifen erfahren. Schleifen sind eine gute Möglichkeit, die gleiche Aufgabe mehrmals auszuführen , ohne die Mühe, diese Aufgabe immer und immer wieder zu tippen. Eine Möglichkeit, eine Schleife zu erstellen, besteht darin, das „For Schlüsselwort“ wie folgt zu verwenden. Der erste Teil der Anweisung gibt den Anfang der Schleife an, der zweite Teil gibt an, wann eine Schleife beendet werden soll, und der dritte Teil ist Ihr Inkrementwert, und der Code, den Sie diese innerhalb des Schleifenkörpers wiederholen möchten. Manchmal innerhalb von Schleifen oder einem anderen Teil der Skizze, müssen wir den Fluss unseres Codes kontrollieren, indem wir „If Conditionals“ verwenden. Dies ist nützlich, wenn Sie einen Codeblock nur ausführen möchten , wenn eine Anweisung als true ausgewertet wird und nur Formen einfärben soll, wenn sie gerade nummerierte Spalten sind. Das letzte, was wir in dieser Lektion wissen müssen, sind Funktionen und Methoden, diese beiden Aussagen sind etwas gleich. Methoden sind im Grunde Funktionen, die zu einer Klasse gehören, so dass sie nicht direkt innerhalb des Programms wie Funktionen definiert sind. Wir müssen keine Menge über Funktionen für diesen Kurs kennen, außer es ist eine Anweisung, die einen Codeblock enthält, den Sie überall in Ihrem Programm aufrufen können , indem Sie seinen Namen eingeben und den entsprechenden Typ und die Anzahl der Argumente übergeben . Während Sie diesen Kurs durchlaufen, werden Sie alle Informationen in dieser Lektion erfassen und sich nicht darum kümmern, sich jetzt etwas auswendig zu lernen. Jeder geht hin und wieder zur Dokumentation zurück, insbesondere in der beginnend. 3. Einführung in die Verarbeitung: Verarbeitung hat drei Hauptkomponenten, die Sie beachten müssen: Der Texteditor, in dem Sie Ihren Code schreiben, die Konsole, wo Sie normalerweise Ihren Code debuggen, und Canvas, wo Sie Ihr Design anzeigen können. Auch jede Verarbeitungsdatei wird üblicherweise als Skizze bezeichnet. In jeder Skizze haben wir zwei Funktionen, die das Basistraining bilden. Einer wird Setup genannt, und der andere wird als Draw bezeichnet. Die Setup-Funktion umfasst die Einstellungen Ihrer Skizze und wird einmal aufgerufen, wenn Sie das Programm ausführen. Während die Zeichenfunktion den Rest Ihres Codes enthält und für jeden Frame ausgeführt wird, bis Sie das Programm beenden. Nun, da wir alle diese Informationen haben, lassen Sie uns die Funktionen untersuchen, die wir verwenden können, um unsere Umgebung einzurichten. Zuerst haben wir die Größenfunktion, die die Größe unserer Leinwand bestimmt. Für das Projekt schlage ich ein Drei-zu-Zwei-Verhältnis oder ein Quadrat vor. Der Maßstab selbst spielt keine Rolle, vor allem, weil wir unsere Skizze in eine Vektordatei exportieren , die nach dem Export leicht angepasst werden kann. Ich werde 600 mal 400 für die Dauer dieses Kurses verwenden. Eine weitere Funktion, die wir im Setup aufrufen können, ist die Hintergrundfunktion, die die Hintergrundfarbe des Canvas bestimmt. Die zu verwendende Hintergrundfarbe liegt natürlich bei Ihnen. Ich werde diese Farbe verwenden. Wir werden auch die NoLoop-Funktion verwenden, um die Zeichenfunktion von Schleifen zu stoppen. Dies liegt daran, dass wir ein statisches Design erstellen möchten. Stattdessen können Sie statische Designs erstellen, indem den vollständigen Code innerhalb der Einrichtungsfunktion schreiben. Aber das scheint ein bisschen konterintuitiv und ein wenig verwirrend zu sein, also werden wir die NoLoop-Funktion verwenden. Eine weitere Verarbeitungsfunktion, die wir während dieses Kurses verwenden werden , ist die Ellipsenfunktion. Dies ist spezifisch für das Design, das wir erstellen. Es gibt jedoch eine Reihe von Formfunktionen, mit denen Sie andere Formen wie Quadrate, Bogen und Linien erstellen können. Lassen Sie uns auf die Verarbeitung gehen, um zu zeigen, was wir gerade gelernt haben. Bevor wir etwas mit der Verarbeitung tun, müssen wir die Software herunterladen. Der Weg, dies zu tun, besteht darin, zu processing.org gehen und dann zum Download-Verarbeitungslink zu gehen. Jetzt können Sie das Betriebssystem finden, das Sie benötigen und es herunterladen, für mich ist es Mac OS. Ich werde einfach darauf klicken. Die Datei sollte heruntergeladen werden. Entpacken Sie die Datei, und installieren Sie sie. Lassen Sie uns nun die Verarbeitung öffnen. Sobald Sie die Verarbeitung geöffnet haben, sollten Sie eine leere Datei wie diese sehen. Um die Umgebung einzurichten, definieren wir zunächst die Setup- und Draw-Funktionen. Um das zu tun, machen wir einfach nichtig Setup. Der Grund, warum wir void verwenden, ist, weil diese Funktion nichts zurückgibt, und so nichtig, da in leer nichts zurückgibt, und void draw. wir nun die Setup- und Draw-Funktion definiert haben, können wir die Umgebung einrichten, indem wir die Größe des Canvas einstellen. Wir können das tun, indem wir die Größenfunktion verwenden, wie wir zuvor im Video gesehen haben. Size Funktion erwartet zwei Argumente. Wir haben gesagt, wir werden 600 mal 400 benutzen. Fühlen Sie sich frei zu wählen, welche Größe Sie mögen. Dann machen wir vorerst einen Hintergrund von Null. Jetzt innerhalb der Zeichenfunktion werden wir die Ellipse zeichnen. Wir können dies tun, indem wir die Ellipsenfunktion verwenden, die vier Argumente erwartet. Wir können vier Argumente übergeben. Die ersten beiden werden die Position des Zentrums dieser Ellipse sein. Die zweiten beiden Argumente werden die Breite und Höhe dieser Ellipse sein. Weil wir einen Kreis erstellen wollen, werden die Breite und Höhe gleich sein. In unserem Koordinatensystem haben wir die X- und Y-Achse. Wir möchten, dass das in der Mitte der Seite liegt, also ist Null für x und Null für y, das das Zentrum unseres Koordinatensystems ist, oben links auf unserer Leinwand. Wenn wir in die Mitte dieser Leinwand gehen wollten, sagen wir im Grunde, dass sie auf die Breite geteilt durch die Hälfte gehen soll, und dann die Höhe geteilt durch die Hälfte. Die Verarbeitung hat sehr nützliche Variablen, die Breite und Höhe genannt werden. Sie erhalten ihre Werte aus der Größenfunktion. Da 600 die Breite unserer Leinwand ist und 400 die Höhe unserer Leinwand ist, wird die Breite 600 sein und die Höhe wird 400 sein. Wenn Sie es horizontal zentrieren möchten, teilen wir die Breite durch zwei. Dann, wenn wir es vertikal tun wollten, teilten wir die Höhe durch zwei. Für die Breite und Höhe, lassen Sie uns einfach 100 mal 100 tun. Die Breite und Höhe sind im Wesentlichen der Durchmesser des Kreises. Wenn wir es ausführen, können Sie entweder klicken Sie auf die Schaltfläche Ausführen hier oder Sie können Befehl R tun . Jetzt können wir sehen, dass wir einen Kreis auf einem Hintergrund haben, der schwarz ist. 4. Durchsetzung der Dokumentation: Ich habe in einem vorherigen Video erwähnt, dass wir eine andere Form verwenden können , anstatt nur die Ellipse zu verwenden, die ich verwende. So können wir das tun, indem wir auf die Referenzseite gehen, und dies ist im Grunde die Dokumentationsseite für alle Dinge Verarbeitung. Also, welche Funktionen Sie benötigen, welche Operatoren Sie benötigen, alles, was Sie brauchen, was mit der Verarbeitung zusammenhängt, finden Sie auf dieser Seite. Wenn Sie auf der Seite Dokumentation zum Abschnitt Shape wechseln und zu den 2D-Grundkörpern navigieren, können Sie sehen, dass mehrere Shapes verwendet werden können. Es gibt eine Arc-Funktion, es gibt eine Circle-Funktion, es gibt eine Line-Funktion, es gibt auch eine Rect-Funktion, also zögern Sie nicht zu wählen, was Sie wollen. Also werde ich mit der Ellipse-Funktion demonstrieren, die wir gerade verwendet haben. Wenn Sie auf die Seite Ellipse Function gehen und Sie hier nach unten gehen, können Sie sehen, dass dies die Syntax dieser Funktion ist. So schreiben Sie eine Funktion in Ihren Code. Dann im Abschnitt Argument in der Funktion, also A, B, C und D, die die Argumente für die Ellipse Funktion sind, können Sie die Definition von ihnen hier unten sehen. Also für A ist es ein Float, und es ist die X-Koordinate der Ellipse. Und dann ist B die Y-Koordinate der Ellipse. Dann sind C und D die Breite und Höhe dieser Ellipse. Ich benutze dies, um Kreise zu erstellen, aber fühlen Sie sich frei, die eigentliche Kreisfunktion zu wählen, um Ihre eigenen Kreise zu erstellen. Wenn Sie zurückgehen und sehen, wie wir das schreiben können, können Sie ein Beispiel sehen, und dann können Sie sehen, dass es ein X und Y als die ersten beiden Argumente hat. Für das dritte Argument können Sie sehen, dass dies die Ausdehnung des Kreises ist. Es gibt viel mehr Formen, die Sie verwenden können, wie Sie im Abschnitt 2D-Grundkörper gesehen haben, und Sie können natürlich das verwenden, was Sie möchten, um Ihr Projekt so einzigartig wie möglich zu machen. 5. Planung des Raster: Um ein Raster zu erstellen, müssen Sie zunächst verstehen, wie das Konzept funktioniert. Normalerweise, bevor Sie etwas programmieren, planen Sie es auf einem Stück Papier oder mental, dann schreiben Sie Ihren Pseudocode und schließlich beginnen Sie zu codieren. Dies macht die Aufgabe viel einfacher. Wie bereits erwähnt, liegt der Null-Nullpunkt auf unserem Koordinatensystem in der oberen linken Ecke unserer Leinwand. Außerdem ist eine weitere Sache zu beachten, dass das Koordinatensystem vertikal gekippt wird. Also sind die Y-Positive am unteren Rand, Gegensatz zu wie wir es in Mathematik gelernt haben. Wenn wir also die Leinwand nach unten bewegen müssen, fügen Sie dem Y-Wert hinzu. Wenn Sie nach oben gehen müssen, subtrahieren Sie vom Y-Wert. Die X-Achse in der Programmierung funktioniert genau wie in Mathematik. rechts zu gehen ist positiv und nach links zu gehen ist negativ. Lassen Sie uns ein Gitter visualisieren. Um ein Raster zu zeichnen, müssen wir die Anzahl der Spalten und Zeilen kennen. Nehmen wir an, wir wollen ein 15 mal 10 Raster. Jetzt wissen wir, dass wir die Anzahl der Spalten und Zeilen definieren müssen, um ein Gitter zu erstellen. Das sind unsere ersten beiden Variablen. Als nächstes wissen wir, dass wir die Breite und Höhe jeder Zelle in diesem Gitter herausfinden müssen , um die maximale Größe unserer Formen zu bestimmen. Wir können dies tun, indem wir die Breite durch die Anzahl der Spalten und die Höhe durch die Anzahl der Zeilen dividieren. Das sind die Dimensionen unserer Zellen, und es gibt unsere nächsten beiden Variablen. Das letzte, was wir herausfinden müssen, sind die X- und Y-Positionen jeder Form. Wenn wir einen Kreis auf Null zeichnen, wird er in der oberen linken Ecke der ersten Zelle positioniert, die sich in der oberen linken Ecke der ersten Zelle befindet, die sich in der oberen linken Ecke der Leinwand befindet. Wenn Sie nun diesen Kreis in die Mitte dieser Zelle schieben möchten, kann ich einfach die halbe Breite dieser Zelle zur X-Position dieses Kreises hinzufügen und die Hälfte der Höhe dieser Zelle hinzufügen, machen Sie die Y-Position dieses Kreises. Dies wird unsere Form in den Mittelpunkt drängen. Das funktioniert also, weil Kreise und Ellipsen von der Mitte gezeichnet werden. Bei Rechtecken und Quadraten werden sie jedoch von der linken oberen Ecke gezeichnet. Wir müssen sie also nicht irgendwo hinstellen, um sie zu zentrieren. Gehen Sie zur nächsten Lektion, um zu sehen, wie wir das programmgesteuert machen können. 6. Erstellen des Raster: Nachdem wir nun konzeptualisiert haben, wie Gitter mithilfe der Verarbeitung erstellt werden können, lassen Sie sich auf die Verarbeitung und beginnen Sie mit der Anwendung dieser Konzepte. Lassen Sie uns zunächst alle Variablen definieren, die wir für dieses Design benötigen. Es gibt vier Variablen, die wir initialisieren müssen. Die ersten beiden sind die Anzahl der Spalten und Zeilen, und sie sollten ganze Zahlen sein, da wir keine halbe Spalte oder Zeile haben können. Die zweiten beiden sind die Abmessungen jeder Zelle. Um unnötige Lücken auf der rechten und unteren Seite des Rasters zu vermeiden, müssen wir diese Variablen schweben lassen, weil wir zwei Zahlen teilen, die möglicherweise nicht zu einer ganzen Zahl führen. Ich deklariere die Variablen außerhalb der Funktionen, um sie global zu machen , so dass ich sie überall im Programm verwenden kann. Wenn ich die Variablen entweder innerhalb der Setup- oder der Draw-Funktion deklariert habe. Ich mache sie lokale Variablen. Ich kann nur innerhalb ihrer jeweiligen Funktionen zugreifen. Jetzt, da die Variablen deklariert sind, kann ich sie innerhalb der Setup-Funktion initialisieren, indem ich die Werte, die ich benötige, übergebe. Ich habe mich dafür entschieden, ein Raster von 15 mal 10 zu haben. Also mache ich die Spalten 15 und die Zeilen 10 und Sie können Verknüpfungen für Ihre Variablen verwenden. Ich habe cols verwendet, um auf Spalten zu verweisen. Als nächstes initialisiere ich die Zellenbreite und die Zellenhöhenvariablen, indem ich die Breite, d. h. die Breite der Leinwand, durch die Anzahl der Spalten dividiert und die Höhe durch die Anzahl der Zeilen dividiert. Ich mache Zellenbreite, und wieder sage ich Zelle W oder ich tippe Zelle W, um sich auf die Zellenbreite zu beziehen , und das wird die Breite durch Spalten geteilt sein. Dann wird die Zellenhöhe die Höhe geteilt durch Zeilen sein. Ich kann etwas anderes tun, um diesen Code kürzer zu machen, was heißt, anstatt int hier und hier drüben zu schreiben, kann ich den zweiten entfernen und ein Komma zwischen Spalten und Zeilen hinzufügen. Also jetzt weiß ich, dass Spalten ein int sind und Zeile ein int ist, und das Programm weiß das auch. Ich werde das Gleiche für die Schwimmer tun. Lassen Sie uns Schleifen verwenden, um in der Lage zu sein, eine Reihe von Rechtecken zu zeichnen, um unser Gitter zu erstellen. Um dies zu tun, können wir die for-Schleife Syntax verwenden, die so für int i gleich 0 geht. Dies ist unsere Variable oder unser Initialisierer und dann ist die Bedingung i kleiner als die Spalten und schließlich erhöht die i-Variable, indem ich i plus plus tut, was bedeutet, dass i um eins inkrementiert wird. Dann schließen wir die Klammern und öffnen den Codeblock. Nun, wenn wir ein Rechteck innerhalb dieses schaffen, und wir gaben ihm eine Position von Null, Null. Lassen Sie es Zellenbreite und Zellenhöhe geben und unser Programm ausführen. Also jetzt haben wir tatsächlich 15 Quadrate übereinander. Wir müssen uns über die Leinwand bewegen, wie können wir das tun? Wir können die i-Variable verwenden, um jedes Rechteck an seine Position zu verschieben. Statt Null, die hart codiert ist, müssen wir die Variable i verwenden. Aber wenn Sie i verwenden, ohne sie mit der Zellenbreite zu multiplizieren, dann werden wir nur um eins inkrementieren. Also, wenn ich das jetzt ausführe, werden wir sehen, dass es nur einen Punkt oder ein Pixel bewegt. Wenn ich mich um die Breite der Zelle bewegen musste, dann muss ich sie mit der Zellenbreite multiplizieren und jetzt haben wir unsere Spalten. Aber wie erstellen wir die Zeilen für jede Spalte? Wir können das tun, indem wir jede Spalte durchschleifen und dafür eine Reihe von for-Schleifen hinzufügen. Die Art und Weise, wie wir das tun können, besteht darin, eine Schleife innerhalb unserer anderen Schleife zu verwenden. Wenn ich für int tue und ich eine andere Variable wählen muss , weil es i nicht mehr verwenden kann , da es bereits in dieser for-Schleife verwendet wird. Also wähle ich j und mache es gleich Null und dann wird die Bedingung dafür kleiner als Zeilen sein, weil wir über die Höhe der Leinwand bewegen möchten und dann j plus plus, um sie zu inkrementieren, schließen Sie die Klammern und schließen Sie die geschweifte Klammern. Jetzt müssen wir das erfinden, um zu verstehen, dass es innerhalb von zwei for-Schleifen ist. Wenn ich das jetzt noch einmal durchführe, werden wir sehen, dass sich nichts geändert hat. Allerdings hat sich etwas geändert, weil wir jetzt 10 Zeilen übereinander haben, aber wir müssen sie über die Höhe der Leinwand bewegen. Wir werden dasselbe tun, was wir mit den Spalten gemacht haben, aber dieses Mal werden wir die j-Variable verwenden , weil ein j sich auf jede Zeile bezieht. Also werde ich j mit der Zellenhöhe multiplizieren und jetzt, wenn ich es ausführe, sollte es funktionieren. Nachdem wir nun unser Raster erstellt haben, ändern wir diese Rechtecke in Kreise, denn das ist das Design, nach dem wir suchen. Wenn ich hierher gehe und rect in ellipse ändere, sollte das funktionieren, weil sie die gleiche Menge an Argumenten in der gleichen Anordnung haben. Die x- und y-Position für die ersten beiden und die Breite und Höhe für die zweite oder für die Ellipse hier, ihr Durchmesser. Wenn ich das durchführe, sehe ich, dass sich alle meine Ellipsen nach links und oben verschoben haben. Der Grund dafür ist, dass sie aus der Mitte gezogen werden. Wie wir bereits in der vorherigen Lektion gesagt haben, müssen wir die Hälfte der Breite der Zelle zur x-Position und die Hälfte der Höhe der Zelle zur y-Position dieser Ellipse hinzufügen , um sie zu zentrieren. Also, wenn Sie hier zurück gehen und Zellenbreite dividiert durch zwei hinzufügen und hier, Zellenhöhe geteilt durch zwei. Dies sollte in den Zellen zentrieren und wir haben unser Raster von Kreisen. 7. Farbe hinzufügen: Es gibt in der Regel zwei Farbmodelle, die in der Verarbeitung verwendet werden können, RGB und HSB. RGB steht für Rot, Grün und Blau, während HSB für Farbton, Sättigung und Helligkeit steht. Während dieses Kurses werde ich mich hauptsächlich auf RGB konzentrieren. RGB-Werte gehen von 0-255, Null ist der dunkelste und 255 die hellsten. Jede der Funktionen in Bezug auf Farbe wie Hintergrund, Strich und Füllung nimmt drei Argumente, rot, grün und blau. Wenn alle drei Werte identisch sind, erhalten Sie einen Graustufenfarbmodus. Zum Beispiel, wenn Sie in Nullen übergeben, werden Sie schwarz, und wenn Sie 255s übergeben, erhalten Sie weiß. Sie können vergleichbare Ergebnisse mit einem Argument eines Wertes von 0-255 erzielen. Andernfalls kombinieren Sie die Menge, die Sie für jede Farbe benötigen, um die gewünschten Formen zu erhalten. Nehmen wir an, Sie haben Lust auf eine leuchtend rote Farbe, in diesem Fall übergeben Sie 255 nur an das erste Argument, und wenn Sie eine Orange benötigen, fügen Sie ein wenig Grün hinzu. Sie können mit Farben so viel experimentieren, wie Sie wollen, bis Sie das Konzept wahrgenommen haben. Obwohl es einen einfacheren Ansatz zur Auswahl von Farbwerten für Ihre Entwürfe gibt, und zwar durch die Verwendung eines Farbrads. Eine Möglichkeit, dies zu tun, ist die Verwendung von Adobe Color. Wählen Sie Farben auf der Adobe Color-Website aus, geben Sie color.adobe.com und gelangen Sie zur Adobe Color-Website. Sie können Farben im Explore Section auswählen, indem hier gehen, wo es heißt, alle Quellen anzeigen. Wenn ich nach unten gehe und zum Farbthema gehe, kann ich die beliebtesten, am häufigsten verwendeten wählen, und dann, wenn ich eine Palette öffne, kann ich sehen, dass ich die hexadezimalen Werte hier kopieren und einfügen kann, die ich verwenden kann. Hexadezimalwerte sind genau wie RGB-Werte. Wir können dies auf der Registerkarte Erstellen hier sehen, also wenn ich zu dem Farbrad gehe, das wir hier haben, und in den Farbmodus gehen, können wir sehen, dass es ein RGB ist. Wenn ich für die erste Farbe wähle, um alle diese auf Null zu scrollen, können wir sehen, dass, weil sie alle Nullen jetzt sind, der Wert schwarz ist. Sie können sehen, dass dies rot ist und das ist grün, das ist blau. Sie können durch alle diese Farben blättern, um die gewünschten Farben auszuwählen, oder Sie können sie aus dem Farbrad selbst auswählen. Wenn Sie hier in den hexadezimalen Werten schauen, wenn ich keine Nullen hinzugefügt habe, dann sind all dies Nullen. Die ersten beiden Zahlen sind also für rote Werte, die zweiten beiden sind für Grün und die dritte für Blau. Die Werte gehen von 0-9 und dann von A-F. Wenn ich möchte, dass es weiß ist, ist der letzte Wert F, also muss ich alle Fs machen. Ich sehe, dass es 255 sind, wie wir es vorher getan haben. Dies ist eine gute Möglichkeit, Farben zu wählen. Normalerweise gehe ich in Adobe-Farben auf die Registerkarte Explorer, aber ich kann auch auf die Registerkarte Trends gehen, und ich kann zum Grafikdesign scrollen, und wenn ich mehr sehe, kann ich die trendigen Farben in der Grafikdesign-Industrie sehen. Wenn ich es öffne, kann ich die Werte kopieren und einfügen und sie zu meinem generativen RPC hinzufügen. Halten Sie sich an der nächsten Lektion fest, um zu erfahren, wie wir Farben für unser Design verwenden werden. 8. Randomisierung: Bisher haben wir unsere Variablen und verschachtelten Schleifen initialisiert, um 15 Spalten und 10 Zeilen zu erstellen. Indem Sie zuerst eine Schleife erstellen, die 15 Mal iteriert, dann für jede dieser Spalten schleifen wir 10 Mal, um 10 Zeilen zu erstellen. So sieht unser Raster jetzt aus. Es ist ein bisschen leer, ohne irgendwelche Farben. Lassen Sie uns eine Füllfunktion innerhalb der Schleife hinzufügen. Unabhängig von der Farbe, die wir dieser Füllung zuweisen, wird auf alle Formen angewendet. Wir fügen immer die Füllfunktion oder eine Farbfunktion vor den Formen hinzu, die wir färben möchten. Andernfalls wenden sie es nicht auf diese Form an. Wir werden füllen und lassen Sie uns Null für Schwarz tun. Wenn wir unser Programm jetzt ausführen, werden wir sehen, dass alle unsere Kreise schwarz sind. Wir wollen jedoch ein bisschen Randomisierung. Wir können das tun, indem wir die Zufallsfunktion verwenden. Die Zufallsfunktion nimmt ein oder zwei Argumente. Wenn Sie ein Argument an die Zufallsfunktion übergeben, übergeben Sie nur die maximale Zahl und die Mindestzahl wird standardmäßig auf Null. Wenn Sie jedoch zwei Argumente übergeben, geben Sie die minimale und maximale Zahl an. Da wir wissen, dass die Farbwerte von Null bis 255 gehen, können wir 255 in die Zufallsfunktion übergehen. Jetzt erhalten wir eine Zufallszahl von Null bis 255. Dann können wir diesen Wert in einer Variablen speichern und ihn in der Füllfunktion verwenden. Lassen Sie uns in der Verarbeitung demonstrieren. Die Zufallsfunktion gibt immer eine Dezimalzahlen zurück, so dass wir einen Float namens col, wie in Farbe erstellen und ihm einen Wert für zufällige 255 zuweisen. Jetzt übergeben wir diesen Wert in die Füllfunktion. Aus dem, was wir über Farben wissen, wissen wir, dass ein Argument in der Füllfunktion eine Farbe aus einem Graustufenmodus bedeutet. Wenn wir unser Programm ausführen, können wir einen Beweis dafür sehen. Sehen Sie, wie die zufälligen, aber sie sind alle Graustufen. Wenn Sie das Design bunt machen möchten, müssen wir einen zufälligen Wert für jeden der R-, G- und B-Parameter erhalten . Lassen Sie uns stattdessen drei Variablen erstellen, eine genannt R eine andere namens G für grün, und eine dritte namens B für blau und geben ihm einen Zufallswert auch von 255. Nun fügen wir diese zur Füllfunktion hinzu. Lassen Sie uns das Programm ausführen und jetzt sollten wir eine andere Farbe für jeden der Kreise sehen. Lassen Sie uns die Strichfarbe entfernen, um sie ein bisschen ansprechender zu machen. Ich gehe in die Setup-Funktion und füge eine Funktion ohne Strich hinzu , um alle Striche in unserem Design zu entfernen. Du musst immer mit einem Semikolon enden. Wenn ich mein Programm jetzt ausführe, kann ich sehen, dass es viel besser ist. Dies ist ein großer Schritt, aber wir möchten, dass dies ein bisschen kontrollierter ist, da wir ein bestimmtes Farbthema wählen möchten, das auf die Kreise angewendet werden soll. Wir machen das in der nächsten Lektion. 9. Randomisieren fortgesetzt: In der vorherigen Lektion haben wir diesen Entwurf erstellt, indem wir einen Zufallswert für Rot-, Grün- und Blauwerte verwenden. Aber wir wollen, dass dies stärker kontrolliert wird, wie wir gesagt haben. Um ein kontrollierteres Farbthema zu haben, müssen wir ein Array erstellen. So funktionieren Arrays. Wir haben eine Variable wie jede andere, aber ihr Datentyp wird durch eckige Klammern gefolgt, um anzuzeigen, dass es sich um eine Liste von Werten handelt. Um dann Werte zuzuweisen, öffneten wir geschweifte Klammern und fügen die Werte eines Datentyps hinzu, den wir vor den eckigen Klammern angegeben haben. Der Zugriff auf diese Werte erfordert nun auch eine andere Syntax als normale Variablen. Es beginnt genau wie Variablen. Dem Variablennamen folgen nun jedoch eckige Klammern. Innerhalb dieser eckigen Klammern gehen wir an der Position dieses Artikels vorbei. Jetzt werden Positionen für Arrays Indizes genannt. Wenn ich das erste Element im Array erhalten möchte, muss ich den Index Null übergeben. Denn bei der Programmierung von Arrays beginnen Indizes bei Null. Es ist auch einer der Gründe, warum wir normalerweise unsere for-Schleife mit einem Anfangswert von Null starten . Lassen Sie uns gehen und erstellen Sie unser Farben-Array. Okay, ich habe fünf Farben in meinem Farbthema, die ich hier kopieren und einfügen werde , die ich für meine Kreise verwenden möchte. Also zuerst mache ich Farbe, weil das der Datentyp der Werte ist, und dann gefolgt von eckigen Klammern und gib dieser Liste einen Namen. Ich nenne es einfach „Farben. Jetzt kopiere ich meine Farben und füge sie ein. Das sind die fünf Farben, die ich wählen werde. Ich verwende hexadezimale Farbwerte, weil sie kürzer sind als das Flechten von RGB-Werten innerhalb von Farbfunktionen. Stellen Sie sich vor, wie lange das sein wird, wenn ich die RGB-Werte verwende. Jetzt, da wir wissen, dass die Indizes von Null auf eins kleiner als die Länge gehen, wissen wir, dass unser Farben-Array fünf Elemente hat, und so wird es von Null beginnen und endet bei vier. Jetzt können wir das in der Zufallsfunktion verwenden. Anstatt all diese zu schreiben, werde ich sie entfernen und jetzt wird sich unsere Füllfunktion beschweren, weil es keine Variablen namens R, G oder B gibt . Ich werde einen Flow machen und ihm einen Wert von „r“ für zufällige geben, und ich werde eine zufällige von fünf, weil es von Null bis zu fünf gehen wird, wird es nie fünf erreichen. Aber jetzt, wenn wir hier mit dem Farben-Array vorbeigehen, und ich benutze die eckigen Klammern. Jetzt verwende ich die Zufallsfunktion, um den Index zu übergeben. Ich weiß, es bekommt eine Zahl von null bis fünf, und ich werde in „r.“ übergeben. Aber jetzt gibt es einen Fehler hier, weil er mir sagt, dass es eine Typ-Diskrepanz gibt. „ Float“ stimmt nicht mit „int“ überein. Der Grund dafür liegt darin, dass die Indizes hier im Array nur ganze Zahlen sind, so dass es keine Gleitkommazahlen gibt. Wir können die Zufallsfunktion hier ändern, um eine ganze Zahl zu werden, indem wir dies tun. Also, wenn ich sage, ich möchte, dass dies eine ganze Zahl ist, aber jetzt beschwert sich das, weil die zufällige Funktion einen Float zurückgibt. Also müssen wir es in eine ganze Zahl konvertieren. Die Art und Weise, wie wir dies tun können, besteht darin, die Funktion „int“ zu verwenden, indem wir die zufällige Funktion in die Funktion „int“ übergeben. Dann bekomme ich jetzt eine Zufallszahl von Null bis vier oder von Null bis fünf. Aber es wird es auf die Indizes abrunden, die ich brauche. Wir können überprüfen, was die Variable „r“ zurückgibt, indem wir sie in der Konsole drucken. Die Art und Weise, wie wir das tun können, ist die Verwendung der Funktion „println“. Println druckt im Grunde den Wert, den wir ihn an die Konsole übergeben , und es erstellt eine neue Zeile für jeden Wert, so dass es für uns einfacher ist, sie zu sehen. Wenn Sie also die Variable „r“ drucken und mein Programm ausführen, sollte ich zuerst sehen, dass meine Farben alle übergeben werden. Ich sehe hier drüben, dass ich immer einen Zufallswert von Null bis vier bekomme. Sie können sehen, hier ist eine Drei, hier ist Null, hier sind vier, und hier als zwei und es sollte irgendwo eins sein. Wir wissen also, dass unsere Zufallsfunktion funktioniert, und natürlich können wir sie hier visuell sehen. Deshalb ist die Verarbeitung eine gute Möglichkeit, Programmierung für Designer zu lernen da sie visueller ist als jede andere Programmiersprache. Lassen Sie uns nun die Hintergrundfarbe erhalten, die ich in meinem Projekt verwendet habe. Wie Sie hier sehen können, habe ich die Hintergrundfarbe und die braune Farbe, die ich wähle, und ich habe meine spezifische Farbpalette anstelle von willkürlichen zufälligen Farben. Lassen Sie uns nun die Größe jedes dieser Kreise randomisieren. Wenn Sie also zurück zum Programm gehen, können wir hier sehen, dass die Breite und Höhe der Ellipse fixiert ist. Also müssen wir dies entfernen und es durch eine zufällige Funktion ersetzen. Wir können zufällig machen, und dann möchte ich, dass es bis zur Zellenbreite und auch Zellenhöhe geht. Dies wird jedoch zu einem Problem für uns führen. Mal sehen, worin das resultieren wird. So sehen Sie, wie es jetzt Ellipsen nicht Kreise, weil wir eine zufällige Funktion für jede der beiden übergeben. Wir müssen eine Variable für die Größe erstellen um einen zufälligen Wert für die Breite und Höhe zu erhalten. Also werde ich schweben, CircleSize. Jetzt haben wir eine CircleSize, die einen zufälligen Wert der Zellenbreite hat, und wir haben es als Argument übergeben. Wenn wir das Programm ausführen, können wir sehen, dass wir Kreise von zufälliger Größe haben. Endlich ist es uns gelungen, das Design zu kreieren, das wir kreieren wollen. In dem Design, das ich geteilt habe, hatten wir jedoch einige Kreise auf anderen Kreisen, die auch unterschiedliche Größen hatten. Die Art und Weise, wie wir das tun können, ist die Verwendung eines wenn bedingten. Darauf können wir in der nächsten Lektion kommen. 10. Den Fluss steueren: Wir haben in unserer letzten Lektion gesehen, dass wir ein Raster aus Kreisen unterschiedlicher Größe und unterschiedlicher Farben erstellt haben . Aber in dem gleichen Projekt, das ich mit dir geteilt habe, hatte ich einige Kreise auf anderen Kreisen. Die Art und Weise, wie wir dies tun können, wie wir in der vorherigen Lektion gesagt haben, ist, wenn Bedingungen. Wenn ich hier rüber gehe und eine wenn bedingte schreibe, prüft das, ob die Spalte eine gerade Zahl ist. Wir wissen, dass die Spalten mit der Variablen i bezeichnet werden. Ich kann sagen, ob i Modul zwei gleich Null ist, und was dies tut, ist im Grunde i durch zwei zu teilen und zu prüfen, ob der Rest davon Null ist. Wenn es Null ist, ist es durch zwei teilbar, was bedeutet, dass es eine gerade Zahl ist. Das Modulo-Zeichen gibt den Rest der Division zurück. Jetzt können wir die Klammern öffnen. Wir können die Ellipsenfunktion innerhalb des Blocks setzen. Nun, wenn wir es ausführen, können wir sehen, dass wir nur sehen, dass Kreise innerhalb als geradlinige Zahlentoleranz gezeichnet werden. Der Grund, warum es von Anfang an beginnt, liegt darin, dass unsere Indizes bei Null beginnen oder unsere Werte in den Variablen i und j von Null beginnen und Null durch zwei teilbar ist, und daher wird es als gerade Zahl angesehen, obwohl dies nicht der Fall ist. Wir werden Null bekommen und dann wird das eins sein, die Spalte Nummer eins, also ist es nicht einmal. Da sind keine Kreise drin, und dann haben wir zwei, vier und so weiter und so weiter. Wir können unseren Code verbessern, indem wir eine Zufallszahl wählen. Anstatt es zu kontrollieren, wollte ich, dass es etwas willkürlicher wird. Wenn ich eine Zufallszahl erstelle, nennen wir es Zufallsposition, Pos für Position, und ich wollte eine ganze Zahl sein, und ich werde Ihnen zeigen, warum. Ich gebe ihm einen Zufallswert von Null bis zwei. Ich werde nur in das gehen wird nur Nullen oder Einsen zu bekommen. Jetzt kann ich hier drüben nachsehen. Wenn zufällige Position gleich ist, und Sie müssen sich bewusst sein, dass, gleich über hier ist ein Zuweisungsoperator, weil es nur ein gleich ist. Wenn Sie jedoch zwei Gleichheitszeichen haben, handelt es sich um einen Vergleichsoperator. Wenn ich überprüfe, ob zufällig in Position gleich Null ist, dann wollte ich eine Ellipse anders zeichnen. Lassen Sie uns dasselbe tun, aber ein Rechteck, nur um den Unterschied zu sehen. Wenn ich das Programm ausführe, kann ich sehen, dass es an einigen Stellen Kreise und an einigen anderen Stellen Rechtecke gibt. Der einzige Grund, warum das ein bisschen seltsam ist, ist weil Quadrat wie Kreise eingedrängt werden. Wir können den hinzugefügten Festkörper und so Höhe entfernen, und jetzt können wir sehen, dass es ein bisschen besser ist. Kommen wir jedoch zu den Ellipsen zurück. Jetzt werden wir sehen, dass wir zu den ersten Ergebnissen zurückgekommen sind. Der Grund, warum ich das getan habe, ist jedoch, weil ich eine andere Ellipse auf diesen Ellipsen erstellen möchte . Wenn ich hier rüber gehe und ich auch eine Ellipse mache, aber dieses Mal möchte ich, dass die Zufallszahl für die Größe ein wenig anders ist. Ich mache Kreisgröße geteilt durch zwei, und Kreisgröße geteilt durch zwei. Ich bekomme Zufallswerte, aber dann teile ich es durch zwei, damit es kleiner ist, und es ist auf dem anderen Kreis. Dies wird jedoch nichts ändern nur weil es die gleiche Farbe haben wird. Wir müssen auch eine Zelle dafür neu zuweisen. Dann versiegeln Sie diese Kreise mit dieser neuen zugewiesenen Variablen. Jetzt haben wir unser Design. Was wir hier getan haben, ist, dass wir die R-Variable neu zuweisen, die wir hier oben haben, und wenn wir sie erneut ausführen, können wir sehen, dass wir andere Zufallswerte erhalten. Wir können auch die Kreisgrößenvariable neu zuweisen, weil wir jetzt nur diese Kreisgröße bekommen und dann teilen wir sie durch die Hälfte, so dass wir immer die Hälfte dieses Kreises bekommen. Aber ich wollte, dass es etwas zufälliger wird. Ich wollte, dass es so aussieht, als hätten einige der größeren Kreise sehr kleine Kreise darin, und einige der kleineren Kreise sind von größeren Kreisen bedeckt. Ich kann die Kreisgrößenvariable auch neu zuweisen, indem ich ihr auch einen Wert der zufälligen Zellenbreite und sie als Kreisgröße beibehalten. Aber dieses Mal, weil es neu zugewiesen wird, werden wir verschiedene Werte von dieser Variablen hier oben bekommen. Wir können sehen, dass wir unterschiedliche Größe haben. Sie können sehen, dass der gelbe Teil hier sehr klein ist , verglichen mit dem orangefarbenen Teil, den wir sehen können, und Sie können hier sehen, dass es einen sehr kleinen orangefarbenen Punkt innerhalb unseres blauen Kreises gibt. 11. Exportieren des Designs: Jetzt ist der Punkt, an dem Sie Ihre letzten Optimierungen zu Ihrem Projekt hinzufügen. Denn als nächstes werden wir das Design exportieren. Die Art und Weise, wie ich ein so einfaches Design bevorzuge, ist die Verwendung der PDF-Bibliothek und Verarbeitung. Um diese Bibliothek verwenden zu können, müssen wir sie zunächst mit dieser Syntax in eine Skizze importieren. Importieren, Verarbeiten, aus der Verarbeitungsbibliothek Ich möchte die PDF-Bibliothek erhalten, und dann verwende ich das Sternchen, um alle Funktionen innerhalb dieser PDF-Bibliothek zu erhalten. Grundsätzlich zeigt das Sternchen an, dass wir alle Funktionalitäten innerhalb dieser Bibliothek unserer Skizze zugänglich machen wollen , damit wir sie verwenden können. Sie können andernfalls angeben, welche Funktionen genau aus dieser Bibliothek importiert werden sollen. Lassen Sie uns untersuchen, welche Funktionen wir nutzen können, um unser endgültiges Kunstwerk zu exportieren. Um unser Design in eine PDF-Datei zu exportieren, müssen wir mit dem Speichern oder Exportieren vor der Hintergrundfunktion oder der NoStroke Funktion beginnen , da dies Funktionalitäten sind, die unserem Design hinzugefügt werden. Ich kann aufnehmen, indem ich die Funktion BeginRecord verwende. Die Funktion BeginRecord nimmt einen Typ an, also gebe ich ihm einen PDF-Typ. Dann der Pfad, in dem Ihre Entwürfe gespeichert werden sollen. Die Dateien werden in den Skizzenordner exportiert. Sie können jedoch einen Ordner angeben, den Sie innerhalb dieses Skizzenordners hinzufügen möchten, und das ist, was ich gerne tun, um es ein wenig organisierter zu machen. Ich nenne es gerne Ausgabe und dann gebe ich der Datei einen Namen. Ich werde sagen, generative Gitter und die Erweiterung. Wenn wir jetzt mit der Aufnahme beginnen, müssen wir sie beenden. Denn wenn wir mit der Aufnahme beginnen und sie nie beenden, werden Sie die Datei nie bekommen. Die Datei wird mit dem Speichern beginnen, aber sie wird nie aufhören zu speichern. Ich muss es am Ende hier drüben hinzufügen. Die EndRecord-Funktion ist im Grunde EndRecord mit Klammern ohne Argumente darin. Wenn ich nun meine Skizze ausführe, wird sie innerhalb meines Skizzenordners gespeichert. Lassen Sie uns gehen und überprüfen Sie den Skizzenordner. Sie können finden, wo Sie Ihre Dateien gespeichert haben, wenn Sie vergessen haben, indem Sie hier mit der rechten Maustaste auf den Titel klicken. Ich kann auf den Ordner klicken und es wird mich dorthin bringen, wo ich ihn gespeichert habe. Wenn ich auf die Blende doppelklicke, um den Ordner zu öffnen, dann sehe ich, dass ich mein Design hier drüben habe und als PDF gespeichert habe. Jetzt, da wir unsere PDF-Datei haben, können wir sie in jeder Imaging-Software öffnen. Ich werde es öffnen und eine Vorschau anzeigen, weil ich auf Mac bin, aber fühlen Sie sich frei, ein Programm zu wählen, das eine PDF öffnet und es in einer Bilddatei speichern kann. Nach dem Öffnen und der Vorschau gehe ich zur Datei, exportiere und wähle dann PNG aus. Ich habe die Auflösung bei 300 Pixeln pro Zoll, um ein sehr hochwertiges Bild zu erhalten. Sie sollten wählen, wo Sie es speichern möchten, Es ist gespeichert. Nun, wenn wir hier zurück gehen und eine Vorschau der Datei sehen, können wir sehen, dass das Bild sehr hochwertig ist. Wie in, gibt es keine Pixelation oder es gibt eine geringfügige Pixelation, wenn wir es nach oben skalieren. Das ist großartig. Jetzt haben wir eine PDF-Datei und ein PNG. 12. Bearbeiten des Designs in Adobe Illustrator: Als Nächstes zeige ich Ihnen, wie Sie dies in Illustrator öffnen, um es weiter zu bearbeiten. Sie können mit der rechten Maustaste klicken und „Mit Adobe Illustrator öffnen“ auswählen . Jetzt haben wir unsere Akte. Wenn ich auf die Clip-Gruppe doppelklicke, können Sie sehen, dass ich jeden Kreis ändern kann. Öffnen von PDF in Illustrator kann jedoch ein wenig einschränkend sein. Wenn Sie in das Farbfeldbedienfeld schauen, können Sie sehen, dass es hier keine Farbfelder gibt. Die Art und Weise, wie ich dies tun würde, ist, eine andere Datei zu öffnen und kopieren und einfügen, was sich hier befindet, in einer anderen Adobe Illustrator -Datei mit dem gleichen Verhältnis. Aber ich zeige Ihnen hier, wie Sie es weiter manipulieren können. Wenn ich auf das „Bild“ klicke, bewegt sich das ganze Bild tatsächlich, weil es sich innerhalb einer Clipping-Maske befindet. Wenn ich zu „Objekt“ gehe und dann gehe ich zu „Clipping Mask“, und ich lasse die Maske los oder verwende die Verknüpfung Befehlsoption 7, und jetzt kann ich die Kreise einzeln auswählen. Sie können das Bild neu einfärben und die Größe der Shapes nach Belieben ändern. So habe ich meine Miniaturansicht für diese Projekte erstellt, indem ich den mittleren Teil entfernt und Text hinzugefügt habe. So manipulieren Sie es im Grunde in Adobe Illustrator. 13. Deine Aufgabe: Für Ihre Aufgabe erstellen Sie ein authentisches, gitterbasiertes generatives Kunstwerk. Sie können über und darüber hinaus mit Ihrem Projekt gehen. Am wichtigsten ist jedoch, dass Sie eine Art Randomisierung in Ihrem Design benötigen. Hier sind drei Beispiele, um Ihnen verschiedene Möglichkeiten zur Implementierung der Zufallsfunktion zu zeigen. Im ersten Beispiel habe ich Rechtecke erstellt, jeweils die Breite und Höhe einer Zelle im Raster umfassen. Dann habe ich die Farben dieser Rechtecke randomisiert, um dieses Ergebnis zu erhalten. Im zweiten Beispiel wurde die Drehung zu einigen Quadraten verwendet, die auf der Leinwand gezeichnet wurden, was etwas fortgeschrittener ist, da für jede Zelle im Raster eine neue Matrix erstellt sie dann um 45 Grad oder um ein Viertel von Pi gedreht wird. Ich fügte auch verschiedene Strichgewichte zu einigen der Quadrate hinzu und randomisierte die Farben jeder Form. Letzt habe ich Kreise in gleicher Größe mit gemischten Strichgewichten und Farben erstellt, um dieses Design zu erstellen. Wenn Sie die 2D-Grundkörper im Shape-Abschnitt auf der Dokumentationsseite referenzieren, sollten Sie in der Lage sein, einige davon in Ihrem Projekt zu verwenden.