[JAVA] Es ist Winter, aber willst du ein Feuerwerk? ?? Dann implementieren Sie es

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!

Wie man ein Feuerwerk macht

Vorbereitung

Installieren Sie Processing!

Die Verarbeitung ist ein programmierbares Vektorzeichnungswerkzeug. Der Inhalt besteht aus Java, und die Grammatik ist auch Java.

Partikelklasse erstellen

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.

a = \frac{dv}{dt}, v = \frac{dx}{dt}
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();
  }
}

Erstellen Sie eine Feuerwerksklasse

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();
    }
  }
}

Nun, fertig!

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 ~

Endlich, wenn es anfängt, wie ein Feuerwerk auszusehen

Jetzt das!

firework.gif

Schließlich

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

Recommended Posts

Es ist Winter, aber willst du ein Feuerwerk? ?? Dann implementieren Sie es
Kannst du es machen? Java EE