Erkunden Sie den kreativen Code mit P5.Js

Feb 17, 2026
wie man

Verbringen einen Tag mit Brendan Dawes. beim London generieren und entdecken Sie, wie Daten sind tawesome . In diesem ganztägigen Workshop erklagt er, wie er die Daten mitnehmen kann, die uns jeden Tag umgibt und mit der Verarbeitung und P5.js in etwas Schönes umdrehen. Buchen Sie jetzt Schnitte

p5.js. ist eine Bibliothek, die die Kraft von bringt wird bearbeitet in das Web. Es zielt darauf ab, Künstler, Designer und Pädagogen in die Welt der Programmierung einzuführen, während auch vielseitige Werkzeuge anbieten, um Devs und Ingenieure in die bildende Kunst zu bringen.

Lassen Sie uns eintauchen und unsere erste Skizze erstellen. Unser Ziel ist es, ein Zeichnungswerkzeug zu erstellen, das ein einfaches Bild in ein Feld von animierten Sternen umwandelt. Erstens definieren wir ein paar globale Variablen und schreiben unsere installieren() Funktion. p5's. installieren() Wird einmal ausgeführt, wenn die Skizze geladen ist, ist es der ideale Ort, um die Initialisierung abzuwickeln.

Laden Sie die Dateien herunter, die Sie benötigen Hier .

 VAR-Hintimage, SkyImage, Sterne = [];
Funktion Setup () {...} 

In unserem. installieren Funktion, wir erstellen eine Leinwand und verstecken den Mauszeiger, damit wir unsere eigenen zeichnen können. Standardmäßig fügt P5 einen Umriss in der Nähe von Formen hinzu - wir möchten in diesem Fall Hübel deaktivieren.

 CreateCanvas (800.500);
Nocursor ();
nostroke (); 

The background image – this night sky scene provides the setting for our animation

Der Hintergrundbild - Diese Nachthimmel-Szene bietet die Einstellung für unsere Animation

Als nächstes laden wir ein Paar Bilder. Man dient als Hintergrund - in diesem Fall eine Nachthimmelszene. Der andere wird das "Hinweis" sein - das Schwarz-Weiß-Design, das unser endgültiges Design basiert. Die Idee ist, die meisten Sterne über schwarze Pixel in unserem Tipp-Image zu setzen, das Design in unserer Hintergrundszene neu zu erstellen. Es wäre leicht, diese Bilder mit den Text- und Zeichnungswerkzeugen von P5 zu erstellen, aber aus Gründen der Kürze verwenden wir statische Vermögenswerte.

 Hintimage = Loadimage ("// bit.ly/hintimage");
SkyImage = loadimage ("// bit.ly/skyimage");

The hint image, which dictates the positioning of our stars

Das Hinweisbild, das die Positionierung unserer Stars diktiert

Die Zeichnungsfunktion

Das ist es für installieren() Schnitte Eine andere Schlüsselfunktion ist zeichnen() . Es heißt in einer kontinuierlichen Schleife, die für Animationen hilfreich ist und im Laufe der Zeit Elemente hinzugefügt wird.

 Funktionsabzug () {...} 

Innerhalb der Zeichnungsfunktion ist unsere erste Aufgabe, die Leinwand mit unserem Hintergrundbild zu füllen. P5 löscht die Leinwand nicht automatisch zwischen zeichnen() Anrufe, also müssen wir dies jeden Rahmen tun oder wir werden mit einigen seltsamen Akkumulationseffekten enden. Um ein geladenes Bild auf die Leinwand zu platzieren, verwenden Sie das Bild() Funktion und geben Sie X- und Y-Koordinaten zur Positionierung an.

 Bild (SkyImage, 0, 0); 

Als Nächstes greifen wir den aktuellen Mausort auf und speichern es als P5.Vector mit CreateVecture () . Dieses Objekt wird mit handlichen Funktionen geliefert, um mit Punkten im Raum umzugehen, aber meistens benutzen es nur als Container.

 VAR-Position = CreateVektor (MOUSEX, MOUSEY); 

Mit unserer neu gespeicherten Mausposition können wir unseren Cursor zeichnen. Wir setzen die Zeichnungsfarbe mit füllen() Durch die Übergabe von RGB-Werten und Verwendung Ellipse() einen Kreis an der Mausstelle zeichnen.

 Füllen (255, 192, 0);
Ellipse (Position.x, Position.Y, 8, 8); 

Wir möchten nur neue Sterne ziehen, während die Maus gedrückt wird, also überprüfen wir P5 museumrpressed. bevor Sie fortfahren. Wenn die Maus unten ist, müssen wir einen guten Ort für unseren nächsten Stern berechnen, um zu enden. Wir machen das mit einer benutzerdefinierten Funktion angerufen findpixel () , was wir später definieren werden.

Discover the creative side of code with Brendan Dawes at Generate London

Entdecken Sie die kreative Seite des Codes mit Brendan Dawes bei Generieren von London

Sobald wir ein Ziel haben, erstellen wir eine neue Instanz eines benutzerdefinierten Sternobjekts (mehrerer) und drücken Sie ihn an das Ende unseres Sternarrays. Wenn wir mit über 2.000 Sternen enden, fangen wir an, die ältesten zu verworfen.

 if (museumsprückt) {
var target = findpixel ();
VAR Star = Neuer Stern (Position, Ziel);
Stars.push (Stern);
if (stars.length & gt; 2000) stars.shift ();
} 

Schließlich gehen wir durch unsere Reihe von Sternen und anrufen aktualisieren() und zeichnen() auf jedem von ihnen. Wir tauchen später in diese Methoden ein.

 für (var i = 0; i & lt; stern.länge; i ++) {
Sterne [i] .update ();
Sterne [I]. Zraw ();
} 

Helferfunktionen

Jetzt installieren() und zeichnen() Sind an Ort und Stelle wir arbeiten an den Helferfunktionen und Objekten. Erstens definieren wir eine Funktion, die für jeden neuen Stern eine Ruheposition findet. Alles, was wir tun müssen, ist, einige zufällige Pixel in unserem Tipp-Image zu überprüfen, verwenden erhalten() um zu sehen, ob sie schwarz oder weiß sind.

Wir müssen tatsächlich nur ihren roten Wert ansehen, denn in beiden Fällen stimmen die RGB-Werte überein. Wenn wir ein nicht-weißes Pixel finden, senden wir es zurück, weil wir unser Design getroffen haben. Wenn nicht, werden wir einfach das letzte Pixel überprüft und es wird als zufälliger Stern dienen.

 Funktion findpixel () {
var x, y;
für (var i = 0; i & lt; 15; i ++) {
x = Boden (zufällig (Hintimage.bridth));
y = boden (zufällig (tintimage.hight));

wenn (rot (tintimage.get (x, y)) & lt; 255) brechen;
}
Rückgabe von CreateVect (X, Y);
} 

Das letzte ist unser benutzerdefiniertes Sternobjekt. Legen Sie einfach ein, wir möchten einen wiederverwendbaren Container, der Informationen über jeden Stern speichert, und bietet auch ein Mittel zum Aktualisieren und Zeichnen. JavaScript bietet keinen Weg, um Klassen in einem traditionellen Sinne zu schaffen, aber wir können das gleiche Ergebnis erhalten, indem wir eine Funktion definieren und für unsere eigenen Bedürfnisse ausdehnen.

Jeder Stern verfügt über wenige Eigenschaften (Ausgangsposition, Endort und einen zufällig erzeugten Durchmesser), den wir in einer "Konstruktorfunktion" definieren, die für jeden neuen Stern aufgerufen wird, der in unserer Zeichnungsschleife erstellt wurde.

 Funktionsstern (Position, Ziel) {
dies.Position = Position;
this.target = Ziel;
dieses.diameter = zufällig (1, 5);
} 

Als nächstes fügen wir ein hinzu aktualisieren() Methode zum Stern, wodurch P5.Vector verwendet wird lerp () um einen neuen Ort zwischen den aktuellen und den Zielpositionen eines Sterns zu berechnen. In diesem Fall bewegen wir vier Prozent der verbleibenden Entfernung für jeden Zug, der uns effektiv einen Leichtigkeitsffekt ergibt.

Wenn wir uns schicken wollten, könnten wir auch hier etwas Physik simulieren, aber jetzt halten wir es einfach.

 stern.prorototype.update = function () {
dies.Position = p5.vector.lerp (
Diese Position,
das.target,
0.04.
);
}; 

Sterne zeichnen.

Endlich, Stern zeichnen() Die Methode zieht tatsächlich den Stern an die Leinwand. Wieder einmal verwenden wir füllen() und Ellipse() , obwohl wir diesmal anrufen füllen() mit einem Graustufenwert und einem Alpha-Wert für Transparenz.

Each frame, linear interpolation gives us a new point along the path between the current star position and its destination

Jeder Rahmen, lineare Interpolation gibt uns einen neuen Punkt entlang des Weges zwischen der aktuellen Sternposition und seinem Ziel

Um den Sternen ein Funkeln zu geben, wird der Alpha-Wert mit P5 ermittelt Lärm() Funktion. Dies gibt den Perlin-Rauschwert für die angegebenen Koordinaten zurück, was bedeutet, dass Sie eine reibungslose, flüssige Reihenfolge der Zufallszahlen erhalten. Für den dritten Parameter führen wir einen zeitbasierten Wert anstelle eines räumlichen Werts, so dass das Geräusch im Laufe der Zeit animiert wird.

 star.prototype.draw = function () {
var alpha = rauschen (
this.target.x,
das.target.y,
Millis () / 1000.0
);

Füllen (255, Alpha * 255);

Ellipse(
das.Position.x, das.Position.Y,
dies.Diameter, das.Diameter
);
}; 

Das ist es für unsere erste Skizze! Klicken Sie auf und ziehen Sie, um zu sehen, dass neue Sterne angezeigt werden, und entsprechen dem Hinweis-Bild.

Was kommt als nächstes?

Von hier aus fügen Sie möglicherweise einige HTML-Elemente hinzu, um Variablen mithilfe des Add-Ons von p5.dom zu steuern oder sogar den Teilen für die Visualisierungen hinzuzufügen p5.sound. .

Wir haben nur die Oberfläche von dem, was mit P5.Js möglich ist, gekratzt, und mit neuen Funktionen auf dem Weg, auf die sich noch mehr freuen kann. Habe Spaß!

Erfahren Sie mehr über die kreative Seite der Codierung bei London generieren Schnitte Brendan Dawes. lehrt Ihnen, wie Sie die Verarbeitung und P5.js verwenden, um Daten in Dinge der Schönheit zu drehen in seiner Werkstatt ;Er wird auch über die Freude an der Arbeit mit sprechen Papier, Kunststoff und Pixel . Buchen Sie jetzt Ihr Ticket Schnitte


wie man - Die beliebtesten Artikel

Ziehen Sie auf die Kraft des Kontrasts in der Technik

wie man Feb 17, 2026

Das Lernen, den Kontrast in der Kunst zu verwenden, transformiert Ihre Projekte und die Art und Weise, wie Sie arbeiten. Mein Lieblingsaspekt, um mit in der Kunst zusammenzuarbeiten, ist der ..


Eine Anleitung zu den Webwerkzeugen von Google

wie man Feb 17, 2026

Seite 1 von 5: Anzeigen und Ändern von HTML, CSS & AMP; Js. Anzeigen..


So erstellen Sie eine progressive Web-App

wie man Feb 17, 2026

Mobile macht nun über den Hälften des WEB-Verkehrs aus, und Webanwendungen ermöglichen es Benutzern die Möglichkeit, Dinge im..


So erstellen Sie eine ChatBot-Schnittstelle

wie man Feb 17, 2026

Mitte der 2000er Jahre erhielten virtuelle Agenten und Kundendienst-Chatbots eine Menge Andulation, obwohl sie nicht sehr gekehrt..


So codieren Sie einen Augmented Reality-Marker

wie man Feb 17, 2026

Seite 1 von 2: Seite 1 Seite 1 Seite 2 ..


Umzug zwischen DAZ Studio und Cinema 4D

wie man Feb 17, 2026

Die Bewegung zwischen Programmen kann verwirrend sein. Ich neige dazu, an vier Lebensmittelgruppen zu bleiben - Cinema 4D, Zbrush..


Die ultimative Anleitung zu Compositing-Bildern in Photoshop

wie man Feb 17, 2026

Von allen Photoshop-Projekten ist das zusammensetzende Bilde in einen fantastischen Rahmen vielleicht das angenehme und kreative ..


Wie man eine lebendige Fairy-Königin erstellt

wie man Feb 17, 2026

Wird gebeten, eine schlechte Arsch-Feekönigin von keinem anderen als meiner Lieblingsmagazin, imaginefx zu malen, habe mich sehr..


Kategorien