Es ist Winter! Es ist kalt!
Warum möchten Sie kein Feuerwerk sehen, um sich warm zu fühlen, da es kalt ist?
Also lasst uns ein Feuerwerk implementieren!
Installieren Sie Processing!
Die Verarbeitung ist ein programmierbares Vektorzeichnungswerkzeug. Der Inhalt besteht aus Java, und die Grammatik ist auch Java.
Dieser Funke Feuerwerk? Als Teil von erstellen wir eine Partikelklasse. Hier ist die Funktion, die Sie implementieren möchten.
--Funke? Ich möchte, dass Sie eine parabolische Linie ziehen und sich bewegen. Yoha das Gesetz der Physik
Erstellen Sie vorerst eine Partikelklasse.
class Particle {
}
Als nächstes wollen wir die Gesetze der Physik, also definieren wir die Position, Geschwindigkeit und Beschleunigung als die erforderlichen Elemente.
class Particle {
PVector location;
PVector velocity;
PVector acceleration;
Particle (float xpos, float ypos, float xsp, float ysp) {
this.location = new PVector(xpos, ypos); //Ausgangsposition
this.velocity = new PVector(xsp, ysp); //Anfangsgeschwindigkeit
this.acceleration = new PVector(0, 0.001); //Schwerkraftbeschleuniger
}
}
Als nächstes folgt die Methode, sich gemäß den Gesetzen der Physik zu bewegen. Der Inhalt ist einfach. Ich habe gerade dieses berühmte Gesetz der Physik definiert.
class Particle {
//...
void update () {
this.velocity.add(this.acceleration);
this.location.add(this.velocity);
}
}
Und Funken? Schreiben Sie eine Methode zum Zeichnen.
class Particle {
//...
void display () {
pushMatrix();
resetMatrix();
translate(this.location.x, this.location.y);
ellipse(0, 0, 10, 10); //Zeichne einen Kreis
popMatrix();
}
}
Funke? Es ist eine Klasse zum Streuen. Folgende Funktionen sind erforderlich!
--Funke? Nach dem Zufallsprinzip um 360 Grad streuen
class Firework {
}
Funke? Geben wir den Mitgliedern die Position des Feuerwerks.
class Firework {
PVector location;
ArrayList<Particle> particles;
Firework (float xpos, float ypos) {
this.location = new PVector(xpos, ypos);
this.particles = new ArrayList<Particle>();
}
}
Danach Funken? Schreiben wir eine Streumethode. Übrigens sogar zeichnen.
class Firework {
//...
//Ausbreitung
void explode () {
for (int i = 0; i < 400; i++) {
float theta = random(0, TWO_PI);
particles.add(new Particle(
this.location.x, this.location.y, //Installieren Sie Funken an der Position des Feuerwerks
cos(theta), sin(theta) //Stellen Sie die Anfangsgeschwindigkeit auf 360 Grad ein
));
}
}
//Physikalische Berechnung von Funken
void update () {
for (int i = 0; i < 400; i++) {
particles.get(i).update();
}
}
//Funken zeichnen
void display () {
fill(255); //Ich habe versucht, den Funken weiß zu machen
for (int i = 0; i < 400; i++) {
particles.get(i).display();
}
}
}
Feuerwerk starten? Bereiten Sie sich vor auf: Wenn Sie fertig sind, tun Sie es!
Firework firework;
void setup () {
size(600, 600); //Baue einen 600x600 Campus
firework = new Firework(width/2, height/2); //Feuerwerk aufstellen
firework.explode(); //Funken streuen
}
void draw () {
background(0); //Der Hintergrund ist schwarz
firework.update();Feuerwerksberechnung
firework.display(); //Feuerwerk zeichnen
}
e? Was ist Shoboi? Ist es nicht so ein Feuerwerk?
Ugh, gut, ich werde es tun ~
Jetzt das!
Dies ist ein Programm, das ich gemacht habe, als ich im ersten Jahr am College war. Ist es ungefähr zwei Jahre her? Es macht super Spaß, das Programmieren zum ersten Mal seit meinem Eintritt in die Universität zu erleben! Es war eine Zeit, als ich den Code schrieb. Natürlich schreibe ich es immer noch.
Mir fiel nichts ein, also habe ich es versucht.
Der Quellcode ist schmutzig, aber hier ist es. https://github.com/RyosukeCla/fireworks