겨울이지만 불꽃 놀이가 싶어? ? 그렇다면 구현해야합니다.
                                            
                                                
                                                
                                                
                                                
                                                
                                                 12173 단어  processing불꽃자바
                    
춥기 때문에 따뜻한 기분을 맛보기 위해 불꽃 놀이를보고 싶지 않습니까?
그렇다면 불꽃 놀이를 구현하자!
불꽃 놀이 만드는 법
 준비
 처리을 설치하십시오!
Processing은 프로그래머블 벡터 드로우 툴입니다. 내용은 Java로 되어 있고, 문법도 Java입니다.
 Particle 클래스 만들기
불꽃놀이 그 불꽃? 의 부분으로, Particle 클래스를 만들어 보자. 구현하고 싶은 기능은 이쪽입니다.
우선 Particle 클래스를 만듭니다.
class Particle {
}
그런 다음 물리적 법칙을 원하기 때문에 필요한 멤버로 위치, 속도 및 가속도를 정의합니다.
class Particle {
  PVector location;
  PVector velocity;
  PVector acceleration;
  Particle (float xpos, float ypos, float xsp, float ysp) {
    this.location = new PVector(xpos, ypos); // 初期位置
    this.velocity = new PVector(xsp, ysp); // 初速
    this.acceleration = new PVector(0, 0.001); // 重力加速度的なやつ
  }
}
이제 다음은 물리적 법칙에 따라 움직이는 방법입니다. 내용은 간단합니다. 그 유명한 물리 법칙을 정의했을 뿐입니다.
$$a =\frac{dv}{dt}, v =\frac{dx}{dt} $$
class Particle {
  //...
  void update () {
    this.velocity.add(this.acceleration);
    this.location.add(this.velocity);
  }
}
그리고 불꽃? 그리기 위한 메서드를 작성합니다.
class Particle {
  //...
  void display () {
    pushMatrix();
    resetMatrix();
    translate(this.location.x, this.location.y);
    ellipse(0, 0, 10, 10); // 円を描画
    popMatrix();
  }
}
Firework 클래스 만들기
불꽃? 뿌려 놓는 클래스입니다. 필요한 것은 다음 기능!
class Firework {
}
불꽃? 와 불꽃의 위치를 멤버에게 갖게합시다.
class Firework {
  PVector location;
  ArrayList<Particle> particles;
  Firework (float xpos, float ypos) {
    this.location = new PVector(xpos, ypos);
    this.particles = new ArrayList<Particle>();
  }
}
후에는 불꽃? 을 뿌리는 방법을 쓰자. 이어서 그리기까지도.
class Firework {
  //...
  // 撒き散らす
  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, // 花火の位置に火花を設置
        cos(theta), sin(theta) // 360度のどれかに初速を設定
      ));
    }
  }
  // 火花の物理計算
  void update () {
    for (int i = 0; i < 400; i++) {
      particles.get(i).update();
    }
  }
  // 火花たちの描画
  void display () {
    fill(255); // 火花を白色にしてみた
    for (int i = 0; i < 400; i++) {
      particles.get(i).display();
    }
  }
}
음, 준비 완료!
불꽃놀이 발사? 위해 다음을 위해 준비! 끝나면 실행이다!
Firework firework;
void setup () {
  size(600, 600); // 600x600のキャンパスを作る
  firework = new Firework(width/2, height/2); // 花火をセットアップ
  firework.explode(); // 火花を撒き散らす
}
void draw () {
  background(0); // 背景はBlack
  firework.update(); 花火の計算
  firework.display(); // 花火の描画
}
그래? 어쩌면? 이런 불꽃이 아니야?
어쩔 수 없어~
마지막으로, 조금 불꽃 놀이와 함께
이렇게 되었습니다!

마지막으로
이것은 대학 1학년 때 만든 프로그램입니다. 2년 정도 전일까?
대학에 들어가고 처음으로 프로그래밍에 접해, 프로그래밍 슈퍼 재미 잖아! 라고 생각하면서 어쨌든 코드 쓰던 시기입니다. 물론 지금도 쓰고 있습니다만.
재료가 생각나지 않았기 때문에 이것으로 해 보았습니다.
소스 코드는 더럽지만 여기가됩니다.
htps : // 기주 b. 코 m / 료스케 C / 푹신한 rks
Reference
이 문제에 관하여(겨울이지만 불꽃 놀이가 싶어? ? 그렇다면 구현해야합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/RyosukeCla/items/e014d1a6a3d0b102f301텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)