조건을 만족하는 프로그램 작성하기

중간고사를 대비하여 조건을 만족하는 프로그램을 작성한다.

아래의 조건을 만족하는 작품을 만드시오.

  • 두 개의 작품을 만든다. 마우스를 클릭하면 다음 작품으로 넘어가도록 구현하시오.

  • 첫 번째 작품
    • 인물 사진 사용
    • 마우스 인터랙션을 사용
    • 이미지 필터링 사용
  • 두 번째 작품: 다음의 요소를 이용해서 작품을 만드시오.
    • 다양한 크기와 위치의 원
    • 랜덤한 모양의 선
    • 원은 마우스의 인터랙션에 반응해야함

첫 번째 작품으로 컬러인 이순신 장군 초상화를 흑백으로 변환하여 화면에 출력한다. 첫 번째 작품에서 화면을 클릭하면 두 번째 작품으로 넘어간다. 두 번째 작품에서는 랜덤하게 선과 원을 출력하고 원의 경우 마우스가 중심이 되도록 마우스르 따라다니며 다양한 지름의 원을 출력한다.

첫 번째 이미지인 이순신 장군 초상화는 다음과 같다.

조건을 만족하는 프로그램은 다음과 같다.

PImage img;
boolean flag;

void setup() {
  size(176, 286);
  img = loadImage("lee.jpeg");
  flag = true;
}

void draw() {
  background(255);
  if(flag) {
    image(img, 0, 0, width, height);
    makeGray();
  }
  else
   drawFigures();
}

void makeGray() {
  loadPixels();
  for(int i = 0; i < 176 * 286; i++)
    pixels[i] = color( red(pixels[i]) );
  updatePixels();
}

void drawFigures() {
  int diameter;
  int count = int(random(100));
  for(int i = 0; i < count; i++) {
    line(int(random(width)), int(random(height)), int(random(width)), int(random(height)));
  }

  count = int(random(10));
  for(int i = 0; i < count; i++) {
    diameter = int(random(width));
    ellipse(int(random(width)), int(random(height)), diameter, diameter);
    delay(1);
  }

  diameter = int(random(width));
  ellipse(mouseX, mouseY, diameter, diameter);
}

void mousePressed() {
  flag = false;
}

실행 결과는 다음과 같다.

첫 번째 작품

첫 번째 작품 클릭 후 두 번째 작품