C'est l'hiver! Il fait froid!
Puisqu'il fait froid, pourquoi ne voulez-vous pas voir des feux d'artifice pour vous sentir chaud?
Alors implémentons des feux d'artifice!
Installez Processing!
Le traitement est un outil de dessin vectoriel programmable. Le contenu est fait de Java et la grammaire est également Java.
Cette étincelle de feu d'artifice? Dans le cadre de, créons une classe Particle. Voici la fonction que vous souhaitez implémenter.
--Étincelle? Je veux que vous dessiniez une ligne parabolique et que vous bougiez. Yoha la loi de la physique
Pour le moment, créez une classe Particle.
class Particle {
}
Ensuite, nous voulons les lois de la physique, nous définissons donc la position, la vitesse et l'accélération comme les membres requis.
class Particle {
PVector location;
PVector velocity;
PVector acceleration;
Particle (float xpos, float ypos, float xsp, float ysp) {
this.location = new PVector(xpos, ypos); //Position initiale
this.velocity = new PVector(xsp, ysp); //Vitesse initiale
this.acceleration = new PVector(0, 0.001); //Guy de l'accélération par gravité
}
}
Maintenant, voici la méthode pour se déplacer selon les lois de la physique. Le contenu est simple. Je viens de définir cette fameuse loi de la physique.
class Particle {
//...
void update () {
this.velocity.add(this.acceleration);
this.location.add(this.velocity);
}
}
Et des étincelles? Écrivez une méthode de dessin.
class Particle {
//...
void display () {
pushMatrix();
resetMatrix();
translate(this.location.x, this.location.y);
ellipse(0, 0, 10, 10); //Tracez un cercle
popMatrix();
}
}
étincelle? C'est une classe à disperser. Les fonctions suivantes sont nécessaires!
--Étincelle? Dispersion aléatoire à 360 degrés
class Firework {
}
étincelle? Donnons aux membres la position du feu d'artifice.
class Firework {
PVector location;
ArrayList<Particle> particles;
Firework (float xpos, float ypos) {
this.location = new PVector(xpos, ypos);
this.particles = new ArrayList<Particle>();
}
}
Après ça, des étincelles? Écrivons une méthode pour disperser. Au fait, même le dessin.
class Firework {
//...
//Propagé
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, //Installez des étincelles à la position des feux d'artifice
cos(theta), sin(theta) //Réglez la vitesse initiale sur l'un des 360 degrés
));
}
}
//Calcul physique des étincelles
void update () {
for (int i = 0; i < 400; i++) {
particles.get(i).update();
}
}
//Dessin d'étincelles
void display () {
fill(255); //J'ai essayé de rendre l'étincelle blanche
for (int i = 0; i < 400; i++) {
particles.get(i).display();
}
}
}
Lancer des feux d'artifice? Préparer à: Lorsque vous avez terminé, faites-le!
Firework firework;
void setup () {
size(600, 600); //Construisez un campus 600x600
firework = new Firework(width/2, height/2); //Mettre en place des feux d'artifice
firework.explode(); //Saupoudrer d'étincelles
}
void draw () {
background(0); //Le fond est noir
firework.update();Calcul des feux d'artifice
firework.display(); //Dessin de feux d'artifice
}
e? Qu'est-ce que le shoboi? N'est-ce pas un tel feu d'artifice?
Ugh, bien je vais le faire ~
Maintenant ça!
C'est un programme que j'ai créé lorsque j'étais en première année d'université. Est-ce qu'il y a environ deux ans? C'est super amusant de découvrir la programmation pour la première fois depuis mon entrée à l'université! C'était un moment où j'écrivais le code. Bien sûr, je l'écris toujours.
Je ne pouvais penser à rien, alors j'ai essayé ça.
Le code source est sale, mais le voici. https://github.com/RyosukeCla/fireworks