4.26 모임내용
----------------------------------------------------------------------------------------------
- 교재 스터디 진행 (~336p) : 김지연, 김지인, 류예림, 최윤정
- 중요한 내용 :
   245p - 시간을 얻어낼 수 있는 함수 (이를 활용해서 비주얼한 시계 제작이 가능 하겠죠)
   280p - fill의 opacity 조절을 통한 rect 드로잉으로 잔상효과 내기
   292p - sine 곡선의 진동값을 활용한 모션
   301p - Array (배열) 활용
   316p - Array 를 활용한 이미지 애니메이션
   328p - 간단한 타이포 애니메이션
   336p - mac os x 의 dock 애니메이션 구현 방법
   


공지사항
----------------------------------------------------------------------------------------------
- 다음주를 마지막으로 Processing - A Programming Handbook for Visual Designers and Artists
   책 스터디를 일단락 짓게 됩니다. 다음주 스터디 끝나고 맥주한잔 하죠 ^^

- 이후에는 전시회에 관한 계획과 작업 준비에 관한 이야기가 있을 예정입니다.


과제
----------------------------------------------------------------------------------------------


- background가 아닌 rect함수를 이용하여 잔상이 남는듯한 착시효과 주기

- 배열(array) 이용해보기

- sin곡선의 부드럽게 움직이는 특성을 살려 모션 제작해보기


중에 한가지 이상 사용하여 자유롭게 모션 제작해보기



<참고코드 - 슈퍼마리오 만들기>

지난번 <참고코드 - 초간단 키보드 방향키로 도형 움직이기> 에서
단지 움직이는 도형을
마리오 이미지로 바꾼 것 입니다.

아주 단순한데, 배경이미지를 한번 그려주고 마리오 이미지를 그려주는 방식이고,
마리오의 움직임을 표현하기위해 마리오 이미지는 2장을 번갈아 보여줍니다.
물론, 마리오 이미지는 키보드 좌우가 눌릴때 마다 x 좌표를 변화시켜서 보여주고요.

참고로, 이러한 캐릭터를 이미지로 만들때 중요한것은 테두리 밖의 여백이 투명하게 처리되어야
배경이 보이므로 포토샵에서 투명배경에 캐릭터만 올리고 투명도를 지원하는 gif 나 png 로 저장해야 됩니다.

사용자 삽입 이미지


// 변수들 선언
int x, y=375;
int toggle=1;
PImage imgBackground;
PImage marioSprite1, marioSprite2;

void setup()
{
  size(800,500);
  frameRate(60);
  imgBackground = loadImage("mario_map.jpg"); // 배경 이미지
  marioSprite1 = loadImage("Mario_sprite1.png"); // 마리오 이미지1
  marioSprite2 = loadImage("Mario_sprite2.png"); // 마리오 이미지2
}

void draw()
  image(imgBackground,0,0); // 먼저 배경을 그린다
   
  if(keyPressed == true)
  {
    if(key == CODED)
    {
      if(keyCode == LEFT) // 키보드 왼쪽 방향키가 눌리면
      {
        x-=10;     // x 좌표 10만큼 빼준다
      }
      else if(keyCode == RIGHT)
      {
        x+=10;      // x 좌표 10만큼 더해준다     
      }
    }
  }

  if(toggle==1) // 마리오 이미지 1,2 를 번갈아서 보여주기 위한 변수
  {
    image(marioSprite1,x,y); // 마리오 이미지 1
    toggle=0;
  }
  else
  {
    image(marioSprite2,x,y); // 마리오 이미지 2
    toggle=1;
  }
}



위의 코드처럼 간단히 배경을 그리고 캐릭터를 특정 위치에 그려줌으로써
기본적인 게임의 골격이 시작됩니다.

위를 응용하면 오락실에 있는 슈팅게임도 만들 수 있겠지요? (충돌과 처리는 제외하고 일단 움직임만)
일단 배경을 그려주는 것과 좌우 방향키로 캐릭터 이미지를 그려줄 수 있으니
이를 응용해보면,

1. 세로로 아주 긴 배경이미지를 만들어서 draw 함수에서 그려주되 y 좌표를 증가시켜줌으로써
   배경이 아래로 조금씩 스크롤 되게 한다

2. 캐릭터를 우주선 이미지로 바꾼다. 좌우 이동은 위의 마리오에서 이미 구현 했죠.

3. 스페이스바나 기타 키를 눌렀을때 미사일이 나가도록 한다.
   일반적으로 미사일은 아래의 우주선에서 윗 방향으로 쭉 나가니까
   미사일 이미지를 만들고 load해서 그려주되 우주선의 현재 x 좌표에서 시작하고
   y 를 - 시켜주면 미사일이 위로 쭉 올라가겠죠.

4. 적들 이미지들도 만들어서 위에서 아래로 y 를 + 시켜주면서 움직여 내려오게 해주면 되겠죠.
   여러 적들을 만들때는 오늘 배운 array 를 쓰고,  random 을써서 임의의 x 좌표에서 나타나게
   할 수 있겠죠.

5. 여기까지 하면 기본적인 슈팅게임 모양은 갖춰집니다.



아래는 예제에서 사용된 이미지들 입니다.
--------------------------------------------------------

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지



 
Posted by 알 수 없는 사용자

우측 메뉴에서 program - study - processing code share 에 과제 및 참고코드들 올려놓았습니다.
앞으로 과제는 여기에 각자 파일을 올리는것으로 하겠습니다.
올릴때는 꼭 실행화면의 캡쳐 이미지도 함께 올려서 어떤 코드인지 파악이 쉽도록 합시다~

08.04.19 출석
----------------------------------------------------------------------------------------------
    4.19
학과(학년) 이름 출석 과제
CD2 박동윤 o o
CD2 정용채 o  
CD2 우준형    
FD1 류예림 o  
FD1 최윤정 o  
FD1 심혜림 o  
PD1 한재석 o o
PD1 안성민 o  
PD1 서리진 o  
PD1 박정은 o  
PD1 김지연 o  
PD1 형예명 o  
CD1 전정민    
CD1 김지인 o  
CD1 함경석 o o
CD1 이현주 o  
CD1 김재인 o  
CD1 설승재    
CD1 김유정 o o
CD1 이정은 o o
CD1 박근명    




모임내용
----------------------------------------------------------------------------------------------
- 교재 스터디 진행 (~196p) : 한재석, 안성민, 박정은
- 중요한 내용 :
   205p - 마우스 좌표값 : mouseX, mouseY 활용
   212p - 마우스가 눌렸는지 mousePressed 로 판별
   219p - 마우스로 그림그리기
   224p - 키보드 입력 활용
   229p - 마우스, 키보드의 이벤트 방식의 처리 방법


공지사항
----------------------------------------------------------------------------------------------
- 늦거나 참석하지 못하신분들은 꼭 공부하셔서 오늘 진행상황까지 진행 하시기 바랍니다.
   (주위 멤버들 적극 활용)
- 당연한 이야기지만 교재책은 꼭 반드시 읽어 보시고, 스터디한 내용들은 꼭 직접 쳐보고 실행할것!
   (눈으로만 봐서는 절대 안됨 ^^;)
- 참석을 못하게 되는 분들은 미리 알려주시고, 과제를 이메일로 꼭 제출해 주기 바랍니다.
- 차주 발표하는 멤버 이외의 멤버들도 당연히 책을 읽어와야 됩니다.  
   (공부할 내용도 모른채 강의를 듣는 개념으로 오면 안됨)
 



다음주 발표
----------------------------------------------------------------------------------------------
김지인, 류예림, 심혜림, 최윤정 (-336p)

이번주과제
----------------------------------------------------------------------------------------------
 
mouse 와 key event 함수를 사용하여 마우스나 키보드 에 따라
반응하는 각기 다른 기능을 3가지 이상 구현할것.



<참고코드 - 초간단 키보드 방향키로 도형 움직이기>

알다시피 draw()는 계속 불리게 되니 draw가 불릴때마다 다음 일들을 하는겁니다.

1. 키보드 키가눌렸는지 체크한다 if (keyPressed == true)
2. 눌린 키보드 키가 어떤종류인가체크
3. 눌린 키보드 키가 방향키인지 체크하고 좌표를 더하거나 빼줌

이 네모 도형을 케릭터 이미지로 대체하면 바로 게임속 캐릭터 움직이는게 되겠죠.^^

// 변수 선언
int x=200, y=150; // 도형 처음 위치

void setup()

{
  size(500, 300);
}

 
void draw()
{
  background(255); // 배경 흰색칠
 
  if (keyPressed == true) // 키가 눌렸으면
  {
    if(key == CODED) // 키보드 특수키 (ALT, CONTROL, SHIFT, UP,DOWN,LEFT,RIGHT) 이면
    {
      if (keyCode == LEFT) // 왼쪽방향키인 경우
      {
        x = x-1; // x 좌표 -1 해준다
      }
      else if (keyCode == RIGHT) // 오른쪽방향키인 경우
      {
        x = x+1; // x좌표 +1 해준다
      }
      else if (keyCode == UP) // 윗방향키인 경우
      {
        y = y-1; // y좌표 -1 해준다
      }
      else if (keyCode == DOWN) // 아래방향키인 경우
      {
        y = y+1; // y좌표 +1 해준다
     }
    }

  }
  fill(0); // 도형은 검정색으로 칠한다
  rect(x, y, 50, 50); // 좌표 x, y 위치에 50x50 크기 네모 그리기

}


사용자 삽입 이미지


Posted by 알 수 없는 사용자

우측 메뉴에서 program - study - processing code share 에 과제 및 참고코드들 올려놓았습니다.
앞으로 과제는 여기에 각자 파일을 올리는것으로 하겠습니다.
올릴때는 꼭 실행화면의 캡쳐 이미지도 함께 올려서 어떤 코드인지 파악이 쉽도록 합시다~

08.04.12 출석
----------------------------------------------------------------------------------------------
모델샵 교육 참석한분이나 수정이 필요하신 분들은 cre8ive.park@gmail.com 으로 메일주세요-

    4.12
학과(학년) 이름 출석 과제
CD2 박동윤 o o
CD2 정용채 지각  
CD2 김규상 어머니생신  
CD2 우준형 o  
FD1 류예림 모델샵   
FD1 최윤정 모델샵  
FD1 심혜림 o  
PD1 한재석 o o
PD1 안성민 o  
PD1 서리진 o  
PD1 박정은 o  
PD1 김지연 o  
PD1 형예명 o o
CD1 전정민 o  
CD1 김지인 모델샵  
CD1 함경석 o o
CD1 이현주 o  
CD1 김재인    
CD1 설승재 o o
CD1 김유정   o
CD1 이정은 o o
CD1 박근명 o  



모임내용
----------------------------------------------------------------------------------------------
- 교재 스터디 진행 (~196p) : 서리진, 이정은, 이현주, 설승재, 전정민, 함경석
- 중요한 내용 :
   112p - font 만들기, typography 활용하기
   125p - sin / cos 활용 spiral 그리기
   127p - random 함수 사용법
   133p - translate() 를 사용한 0점 기준 좌표 변경,
            pushMatrix() 로 원래 좌표계 저장, popMatrix() 로 좌표계 복구.
   137p - rotate()
   181p - 자신만의 함수(function) 만들고 사용하기
 

- 개인별 과제 리뷰



공지사항
----------------------------------------------------------------------------------------------
- 늦거나 참석하지 못하신분들은 꼭 공부하셔서 오늘 진행상황까지 진행 하시기 바랍니다.
   (주위 멤버들 적극 활용)
- 당연한 이야기지만 교재책은 꼭 반드시 읽어 보시고, 스터디한 내용들은 꼭 직접 쳐보고 실행할것!
   (눈으로만 봐서는 절대 안됨 ^^;)
- 참석을 못하게 되는 분들은 미리 알려주시고, 과제를 이메일로 꼭 제출해 주기 바랍니다.
- 차주 발표하는 멤버 이외의 멤버들도 당연히 책을 읽어와야 됩니다.  
   (공부할 내용도 모른채 강의를 듣는 개념으로 오면 안됨)
 



다음주 발표
----------------------------------------------------------------------------------------------
한재석, 김지연, 박정은, 안성민 (-276p)
프로젝터가 교실에 설치되었으므로, 빌릴필요 없습니다-

이번주과제
----------------------------------------------------------------------------------------------

 오늘 배운 내용 활용, 자유롭게 만들어오기

- Typography 를 활용한 visual 작업
- random 함수를 활용한 우연의 효과 활용
- sin, cos을 활용한 소용돌이 곡선
- rotate(), translate() 를 활용한 기울기 및 좌표 다양한 변화
- 특정 기능부분을 묶어서 함수로 만들기

- 참고코드

/***************************************
  2008.4.12 Dongyoon Park
 
cre8ive.park@gmail.com
  http://www.cre8ive.kr
****************************************/

// 사용할 변수들 선언
int x=0, y=0, sizeVar=10;
int colorVar1=1,colorVar2=100,colorVar3=250;
int sizeMax = 100; // 원의 크기는 100까지만...

void setup()
{
  size(800,350);    // set screen size.
  background(255);  // set background color.
  fill(0);          // I want to fill objects with black.
  smooth();
  noStroke();       // objects with no outlines.
  frameRate(180);
}


void draw()
{
  // random 을 이용해서 임의의 값들 얻어내기
  x = int(random(width));
  y = int(random(height));
  sizeVar = int(random(sizeMax));
  colorVar1 = int(random(255));
  colorVar2 = int(random(255));
  colorVar3 = int(random(255));

 
  fill(colorVar1,colorVar2, colorVar3, x%100); // 얻어낸 값들로 임의의 컬러 채우기
  ellipse(x, y, sizeVar, sizeVar); // 얻어낸 값들로 임의의 위치에 임의의 크기로 원 그리기

}


<실행 결과>

사용자 삽입 이미지


stroke(x,y,x+100,y+100); 라는 코드를 추가해준 결과 - 아웃라인이 생깁니다
사용자 삽입 이미지

Posted by 알 수 없는 사용자

08.04.05 출석
----------------------------------------------------------------------------------------------
    4.5
학과(학년) 이름 출석 과제
CD2 박동윤 o o
CD2 정용채 o o
CD2 윤영준 x x
CD2 김규상 o o
CD2 우준형 x x
FD1 류예림 o o
FD1 최윤정 o o
FD1 심혜림 o o
FD1 심길령 x x
PD1 한재석 결혼식 o
PD1 안성민 지방 x
PD1 서리진 o x
PD1 박정은 o o
PD1 형예명 o o
CD1 전정민 o o
CD1 김지인 o o
CD1 함경석 o o
CD1 이현주 o o
CD1 김재인 o o
CD1 설승재 지각 x
CD1 백나현 x x
CD1 김유정 o o
CD1 이정은 o x
CD1 박근명 o x
PD1 김지연 o x




모임내용
----------------------------------------------------------------------------------------------
- 교재 스터디 진행 (~135p) : 형예명, 김유정 (서리진, 이정은 - 모델샵교육으로 다음주 진행예정)
- 중요한 내용 :
   61p - for 문
   86p - color 사용법
   97p - 사진 이미지 파일 로드해서 띄우는 법 (사진파일을 코드 폴더 밑에 data 폴더 만들고 거기에 넣어야 함)
   102p - character 와 text
   112p - font 만들기, typography 활용하기
   127p - random 함수 사용법


- 개인별 과제 리뷰, 공튀기기를 수정해서 이미지가 튀겨다니도록 수정해봄



공지사항
----------------------------------------------------------------------------------------------
- 늦거나 참석하지 못하신분들은 꼭 공부하셔서 오늘 진행상황까지 진행 하시기 바랍니다.
   (주위 멤버들 적극 활용)
- 당연한 이야기지만 교재책은 꼭 반드시 읽어 보시고, 스터디한 내용들은 꼭 직접 쳐보고 실행할것!
   (눈으로만 봐서는 절대 안됨 ^^;)
- 참석을 못하게 되는 분들은 미리 알려주시고, 과제를 이메일로 꼭 제출해 주기 바랍니다.
- 차주 발표하는 멤버 이외의 멤버들도 당연히 책을 읽어와야 됩니다.  
   (공부할 내용도 모른채 강의를 듣는 개념으로 오면 안됨)
 



다음주 발표
----------------------------------------------------------------------------------------------
함경석, 전정민,설승재,이현주 (-196p)
발표 예정인 조는 프로젝터 금요일에 빌려놓기(6층 전산실에서 빌리고 세콤에 맡겨놓을 것)


이번주과제
----------------------------------------------------------------------------------------------

 안녕하세요~ 씨디 1학년 김유정입니다.

 복수의 이미지를( 한 이미지를 여러번 불러오는 것도 가능 ),

 색 변수를 다르게 한 복수의 tint 함수를 이용해 화면에 표시한 뒤 Shape을 넣어 꾸며본다.

  1) color 함수를 최소 1번 이상 이용할 것.

  2) colorMode를 이용, HSB, RGB, Hexadecimal 컬러를 모두 사용해볼 수 있도록 노력한다.

 예시로 제가 한거 일단 소스 보여드릴께요.

size (400,300);
noStroke();
smooth();
background(255);

color wh1 = color ( 255, 255 );
color wh2 = color( 255, 200 );
color wh3 = color ( 255, 150 );
color wh4 = color ( 255 ,100 ); // 컬러를 어떻게 지정하나도 자유입니다.

PImage img;
img = loadImage("2.bmp"); // 이미지 파일은 각자 자신이 가진 걸로 자유롭게~


tint ( wh1 );
image ( img, 0, 0 );
tint ( wh2 );
image ( img, 100, 0 );
tint ( wh3 );
image (img, 200, 0);
tint ( wh4 );
image (img, 300, 0);

fill ( #F58585 );
for ( int i = 0 ; i < 20 ; i ++ ){
  ellipse ( 100, i* 15 , 5, 5 );
}

fill ( 255, 255, 255 );
for ( int i = 0 ; i < 20 ; i ++ ){
  ellipse ( 200, i* 15 , 5, 5 );
}

colorMode (HSB, 360, 100, 100);
fill ( 0, 61, 38 );
for ( int i = 0 ; i < 20 ; i ++ ){
  ellipse ( 300, i* 15 , 5, 5 );
}


사용자 삽입 이미지





참조 : 이미지가 튀기도록 수정한 공튀기기 애니메이션 코드
----------------------------------------------------------------------------------------------
/***************************************
  2008.4.5 Dongyoon Park
  cre8ive.park@gmail.com
  http://www.cre8ive.kr
****************************************/

// 사용할 변수들 선언
int xspeed=10, yspeed=10;
int x=0, y=0;
PImage myimage;

void setup()
{
  size(550,350);    // set screen size.
  background(0);  // set background color.
  myimage = loadImage("Greece.gif");  // Greece.gif 를 로드 한다
}

void draw()
{
  x = x + xspeed;
  y = y + yspeed;
 
  // screen boundary check
  if( (x < 0) || (x > width-50) )
    xspeed = -xspeed;

  if( (y < 0) || (y > height-50) )
    yspeed = -yspeed;  
 
  background(0);
  image(myimage, x, y); // x, y 좌표에 myimage 를 그린다


}



사용자 삽입 이미지

<위와같이 코드가 있는 폴더 밑에 data 라는 폴더를 만들고 이미지파일을 넣어주면 됩니다.>



사용자 삽입 이미지

<결과는 공대신 이미지가 튀어다니는 애니메이션>






참조 : 컬러로 수정한 공튀기기 애니메이션 코드
-----------------------------------------------------------------------------------
/***************************************
  2008.3.29 Dongyoon Park
  cre8ive.park@gmail.com
  http://www.cre8ive.kr
****************************************/

// 사용할 변수들 선언
int xspeed=10, yspeed=10;
int x=0, y=0;
int strokeColor=0;

void setup()
{
  size(550,350);    // set screen size.
  background(0);  // set background color.
  fill(0);          // I want to fill objects with black.
  noStroke();
}

void draw()
{
  x = x + xspeed;
  y = y + yspeed;
 
  // screen boundary check
  if( (x < 0) || (x > width) )
    xspeed = -xspeed;

  if( (y < 0) || (y > height) )
    yspeed = -yspeed; 
 
//  background(255);

  if( y>height/2 )
    strokeColor = x%255;
  else
    strokeColor = 255 - (x%255);

  println(strokeColor); 
  fill(strokeColor,255-x,255-y,70);
//  fill(strokeColor,70);    // ORIGINAL CODE ( GRAY )

  ellipse(x,y,(20+x)%70,(20+x)%70);

}




사용자 삽입 이미지

< fill(strokeColor,70) 으로 했었던 기존 그레이스케일 결과물 >



사용자 삽입 이미지

< fill(strokeColor,255-x,255-y,70) 로 수정한 결과물 >


 


Posted by 알 수 없는 사용자
08.03.29 출석
----------------------------------------------------------------------------------------------
    3.29
학과(학년) 이름 출석 과제
CD2 박동윤 o o
CD2 정용채 o o
CD2 윤영준 x x
CD2 김규상 o x
CD2 우준형 o o
FD1 류예림 아픔 x
FD1 최윤정 o o
FD1 심혜림 집(지방) x
FD1 심길령 지각 x
PD1 한재석 o o
PD1 안성민 o o
PD1 서리진 o o
PD1 박정은 o o
PD1 형예명 o o
CD1 전정민 아픔 x
CD1 김지인 x x
CD1 함경석 o o
CD1 이현주 o o
CD1 김재인 x x
CD1 설승재 o x
CD1 백나현 o x
CD1 김유정 o o
CD1 이정은 o o
CD1 박근명 x x
PD1 김지연 o o



모임내용
----------------------------------------------------------------------------------------------
- 프로세싱 교재 제본 및 배포(18명) : 결석자 교재 2부 남아있음
- 개인별 과제 발표 및 리뷰
- 교재 스터디 진행 (~59p) : 박동윤
   기본 코딩 요소, 화면 좌표계, 변수, 데이터타입, 판별
   위를 활용한 예제 스터디 (공튀기기)
- 스케쥴 정리 : 한번에 60페이지 정도씩 5월 3일까지 376페이지 까지 하는것으로. 조당 4~5명
   차주 발표 해당 조는 해당 챕터를 잘 나누어서 스터디 후 발표 진행
   중요한 function 들 활용법과 같이 해볼 수 있는 예제 준비
   스터디한 내용을 응용할 수 있는, 내줄 과제 준비
   
발표 예정인 조는 프로젝터 금요일에 빌려놓기(6층 전산실에서 빌리고 세콤에 맡겨놓을 것)


공지사항
----------------------------------------------------------------------------------------------
- 늦거나 참석하지 못하신분들은 꼭 공부하셔서 오늘 진행상황까지 진행 하시기 바랍니다.
   (주위 멤버들 적극 활용)
- 당연한 이야기지만 교재책은 꼭 반드시 읽어 보시고, 스터디한 내용들은 꼭 직접 쳐보고 실행할것!
   (눈으로만 봐서는 절대 안됨 ^^;)
- 참석을 못하게 되는 분들은 미리 알려주시고, 과제를 이메일로 꼭 제출해 주기 바랍니다.
- 차주 발표하는 멤버 이외의 멤버들도 당연히 책을 읽어와야 됩니다.  
   (공부할 내용도 모른채 강의를 듣는 개념으로 오면 안됨)
 


다음주 발표
----------------------------------------------------------------------------------------------
   4반 첫번째조 (형예명, 김유정, 이정은 +  ? )


이번주과제
----------------------------------------------------------------------------------------------
- 배운 내용을 활용한 작업, 공튀기기 코드를 응용해서 자신만의 애니메이션 비주얼 작업.
  필수 포함시켜야 할 내용
  1. setup / draw 구조를 활용한 애니메이션
  2. 움직이는 물체
  3. 물체는 움직이면서 컬러 또는 그레이스케일 변화가 있어야 함.
  4. 화면안에서 지속적으로 일어나도록
      (한번 애니메이션이 일어나고 화면 밖으로 나가버린다던지 해서 끝나지 않도록)




참조 : 공튀기기 애니메이션 코드
----------------------------------------------------------------------------------------------

/***************************************
  2008.3.29 Dongyoon Park
  cre8ive.park@gmail.com
  http://www.cre8ive.kr
****************************************/

// 사용할 변수들 선언
int xspeed=1, yspeed=1;
int x=0, y=0;

void setup()
{
  size(550,350);    // set screen size.
  background(255);  // set background color.
  fill(0);          // I want to fill objects with black.
  noStroke();       // objects with no outlines.
}

void draw()
{
  x = x + xspeed;
  y = y + yspeed;

  // screen boundary check
  if( (x < 0) || (x > 540) )
    xspeed = -xspeed;

  if( (y < 0) || (y > 340) )
    yspeed = -yspeed;  
 
  background(255);
//rect(x,y,10,10);
  ellipse(x,y,20,20);

}










 

Posted by 알 수 없는 사용자
2008.3.22 (17:30~18:30) 첫 모임 내용

1. 프로그래밍 언어 개요 / 박정은

2. Processing 설치 및 실행법, 간단한 코드실행 / 박동윤
   - http://www.processing.org 의 download 메뉴에서 다운로드 (OS X or Windows)
   - function reference 소개 : http://www.processing.org 의 reference 메뉴
   - reference 에 있는 function 들 사용방법, 설명 보기 (syntax, parameters)
   - triangle() 을 이용한 삼각형 그리기


-----------------------------------------------------------------------------------
과제
-----------------------------------------------------------------------------------
일단 PDF 파일로 책을 보실 수 있으므로 35페이지까지 읽어오는 것으로 하겠습니다.
서문도 한번 죽 읽어보시고13~15 페이지의 setup, draw 나 class 같은 내용들은
나중에 공부할 내용이므로 일단 넘어가셔도 좋습니다.

17 페이지의 Code elements 들은 코딩을 하는데 있어서 기본적인 문법들
(주석 다는법 등등)이 있으므로 꼭 읽어보시고

23 페이지의 Coordinates 는 화면의 좌표계(좌측 상단을 0,0 으로 기준으로 시작한다는 내용들)와 기본적으로 제공하는 함수(function)들 을 설명하고 있으니 꼭 읽어보세요-
화면의 크기를 정하는 size()와 같은 필수적인 함수도 설명이 되어있습니다.

그뒤로 기본적인 도형들 그리는 방법들이 쭉 여러가지 나와있는데
우리가 지난 시간에 해본것처럼 단순히 제공하는 함수들에 좌표값만 넣어줄 뿐입니다.
따라서 전부 동일한 내용들이고요,

35페이지를 보시면 다음과 같이 도형을 여러개 그리되 명암값을  다르게 하여 그리는것을 볼 수 있습니다.
(fill의 값을 다양하게 사용)

     

사용자 삽입 이미지

 

사용자 삽입 이미지

이번주 숙제는 이렇게 화면에 다양한 도형들을 각자 다른 명암값을 주어 자유롭게 구성해보는것으로 하겠습니다. 기본적인 함수 사용법과 좌표계 (원하는곳에 원하는 도형을 그릴 수 있는 능력)를 익히고자 하는거구요, 2D 시간에 브리스톨패드에 열심히 하고 계신 내용을 프로세싱 화면으로 만들어보는것도 좋은 경험이 될 것 같습니다. 화면 사이즈는 자유롭게 하는것으로 하겠습니다.

각자 해온 자신의 작업들을 토요일 세시 모임 시작전에 앞쪽 노트북에 넣어주시고(USB 메모리나 메일등 이용) 어떤 도형 함수들을 써서 어떤것들을 어떻게 그렸는지 발표하고 공유하도록 하겠습니다.

그럼 토요일 세시에 뵙겠습니다 ^^

 

Posted by 알 수 없는 사용자
출석
김남윤, 최주영, 양정애, 변수홍, 전주영, 유승환, 김상은, 김후동, //박상현

다음주 과제..

자기만의 시계 만들어 오기
방학끝나고 전시할 작품 컨셉다음주에 발표하도록 해오기.
필수로 해올 것은..  컨셉, 브레인 스토밍, 레퍼런스 가져올 것 ..

다음주 발표  (다시 전에 했던 조대로 다시 돌아가기로 했음)
기창, 정애
프로세싱책 shape2 vertices (69page)

오늘 공부한 내용


//camera


import processing.video.*;

Capture camera;

void setup() {
  size (640, 480);
  colorMode(HSB, 256);
  noStroke();
 

  camera = new Capture(this, width, height, 12);
  loadPixels();
     camera.loadPixels();

void draw() {
   background(0);
   
 for(int y=0 ; y < height ; y+=10) {
    for(int x=0 ; x < width ; x+=10) {
      int pos = (y * width) + x;
      color c = camera.pixels[pos];
      float h = hue(c);
      float s = saturation(c);
      float b = 20 * brightness(c) / 256;
     
      fill(h, s, 256);
      ellipse(x, y, b, b);
    }
  }
}
 
void captureEvent(Capture camera) {
  camera.read();
}




Posted by 알 수 없는 사용자
void setup(){
size(1200,200);
smooth();
background(0);
strokeWeight(2);
colorMode(HSB,100);
}
void draw(){
for(int i = 0; i < width; i++) {
  float h = random(2);
  float s = random(100);
  float b = random(100);
  float a = random(100);
  float x = random(0, width);
  stroke(h,s,b,a);
  line(i, 0, x, height);
}
}


random과 for문에 대해서 배워보는 시간이었습니다.


Posted by 알 수 없는 사용자
저번 주 상현이 형이 알려준 식대로 프로그래밍하는 습관을 들이기 위해 해봤습니다.
=======================================
float mx;
float my;

void setup() {
size(400, 400);
colorMode(RGB, 100);
smooth();
frameRate(25);
}

void draw() {
background(100);
float a = 2.2;// Acceleration

float x = mouseX; //mouse x
float y = mouseY; //mouse y

float dx = x - mx; //distance
if(abs(dx) > 1) {
mx = x - dx/a;//move to mousex
}
float dy = y - my;
if(abs(dy) > 1) {
my = y - dy/a;
}

noStroke();
fill(0);
ellipse(mx, my, 30, 30);

}
====================
이런 식으로 좀더 부드러운 운동을 만들기 위해 공을 또 다른 공이 따라 다니는 것을
만들수도 있습니다. 응용해서 해보시길~
Posted by 알 수 없는 사용자
int value = mouseX;
void setup(){
size(800,800);
colorMode(RGB,255);
frameRate(30);
}
void draw(){
background(255,255,255);
fill(mouseX ,mouseY ,value);
noStroke();
rect(mouseX, mouseY,30,30);

}
void mousePressed() {
if(value == 0) {
value =255;
}else{
value = 0;
}
}
=======================================

int value = 0;
void setup(){
size(800,800);
colorMode(RGB,255);
frameRate(30);
}
void draw(){
background(255,255,255);

fill(mouseX/10,mouseY/10,(mouseX+mouseY)/10);
noStroke();
rect(mouseX, mouseY,mouseX/20,mouseY/20);
}
Posted by 알 수 없는 사용자