코딩교육

[Processing] 비가 내리는 애니메이션을 프로세싱(Processing)으로 코딩하기

산삼인생 2023. 2. 7. 20:43
728x90

[Processing] 비가 내리는 애니메이션을 프로세싱(Processing)으로 코딩하기

프로세싱(Processing) 언어에서 사용할 수 있는 프로그래밍 개념과 기능을 사용하여

코딩으로 간단히 비가 내리는 애니메이션을 표현할 수 있습니다.

다음은 프로세싱(Processing)에서 간단한 비 애니메이션을 만드는 방법의 예시입니다.

int numDrops = 500;
Drop[] drops = new Drop[numDrops];

void setup() {
  size(600, 400);
  for (int i = 0; i < numDrops; i++) {
    drops[i] = new Drop();
  }
}

void draw() {
  background(230, 230, 250);
  for (int i = 0; i < numDrops; i++) {
    drops[i].fall();
    drops[i].show();
  }
}

class Drop {
  float x;
  float y;
  float z;
  float length;
  float yspeed;

  Drop() {
    x = random(width);
    y = random(-500, -50);
    z = random(0, 20);
    length = map(z, 0, 20, 10, 20);
    yspeed = map(z, 0, 20, 1, 20);
  }

  void fall() {
    y = y + yspeed;
    float grav = map(z, 0, 20, 0, 0.2);
    yspeed = yspeed + grav;

    if (y > height) {
      y = random(-200, -100);
      yspeed = map(z, 0, 20, 4, 10);
    }
  }

  void show() {
    float thick = map(z, 0, 20, 1, 3);
    strokeWeight(thick);
    stroke(138, 43, 226);
    line(x, y, x, y + length);
  }
}

 

이 코드는 화면 상단에서 하단으로 떨어지는 개별 빗방울을 시뮬레이션하여 비 애니메이션을 만듭니다. 

애니메이션은 각 드롭의 위치를 업데이트하고 화면에 표시하기 위해 반복적으로 실행되는 draw() 함수를 사용하여 생성됩니다. 

Drop 클래스는 위치, 속도 및 길이를 포함하여 각 개별 드롭의 동작을 정의하는 데 사용됩니다.

 

결과는 다음과 같습니다.

비 애니메이션 실행화면