조건을 만족하는 프로그램 작성하기
on Processing
아래의 조건을 만족하는 작품을 만드시오.
두 개의 작품을 만든다. 마우스를 클릭하면 다음 작품으로 넘어가도록 구현하시오.
- 첫 번째 작품
- 인물 사진 사용
- 마우스 인터랙션을 사용
- 이미지 필터링 사용
- 두 번째 작품: 다음의 요소를 이용해서 작품을 만드시오.
- 다양한 크기와 위치의 원
- 랜덤한 모양의 선
- 원은 마우스의 인터랙션에 반응해야함
첫 번째 작품으로 컬러인 이순신 장군 초상화를 흑백으로 변환하여 화면에 출력한다. 첫 번째 작품에서 화면을 클릭하면 두 번째 작품으로 넘어간다. 두 번째 작품에서는 랜덤하게 선과 원을 출력하고 원의 경우 마우스가 중심이 되도록 마우스르 따라다니며 다양한 지름의 원을 출력한다.
첫 번째 이미지인 이순신 장군 초상화는 다음과 같다.
조건을 만족하는 프로그램은 다음과 같다.
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;
}
실행 결과는 다음과 같다.
첫 번째 작품
첫 번째 작품 클릭 후 두 번째 작품