아두이노 프로세싱 - 몇개의 도형들 그리기

데이빗 2016-03-16 (수) 13:19 2년전 2432  

OPENGL (오픈지엘)은 2차원 혹은 3차원 그래픽을 위한 크로스플랫폼 라이브러리로 다양한 함수를 사용하여 간단한 도형에서부터 복잡한 애니메이션/게임에 이르기까지 광범위하게 사용되고 있다. 마이크로소프트사의 Direct3D와 같이 컴퓨터 그래픽스 세계를 양분하고 있다고 해도 과언이 아닌 만큼, 능숙하게 사용한다면, 커리어 및 연구에 큰 도움이 될 것이다.

 

오픈지엘을 접한 것은 10년 전이지만, 게으른 탓에 연구를 할 때만 혹은 관련 프로젝트가 있을 경우에만 했기 때문에 고수도 내공자도 아니지만, 아두이노의 프로세싱이 OPENGL을 이용하여 그래픽스 구현을 가능하게 하기 때문에 몇가지 예제 혹은 강좌를 만들어본다. 

두꺼운 책도 있지만, 전공으로 삼아 시작할 것이 아니라면, 간단한 예제를 구현하고, 혹은 간단한 프로젝트를 만든다고 생각하면 인터넷에 떠도는 예제들만으로도 충분히 괜찮다고 생각한다. 결국, 라이브러리에 대한 참조가 필요하기 때문에 책을 본다하여도 인터넷을 통한 레퍼런스 검색은 불가피할테니 말이다. 

 

오픈지엘을 사용하여 가장 많이 쓰는 것 도형이 블럭이 아닐까 싶다. 

블럭을 시작으로 공(Sphere), 2차원 도형들을 사용하며, 

블럭에 나만의 이미지를 입히는 Texture를 알아볼 생각이다. 

또한, 프로세싱의 장점인 센서값을 불러와서 그래픽으로 구현하는 것도 구현해보려고 한다. 

 

먼저, 프로세싱을 사용하여 간단한 도형을 만드는 예제를 살펴본다. 

 

프로세싱 코드 (아두이노 프로세싱 코드: http://www.processing.org/download/?processing 에서 다운로드 받을 수 있다.)

 

void setup()  {

  size(640, 360, P3D); // 윈도우를 생성한다. 640x360 사이즈이며 P3D라는 것은 3차원 화면이라는 것을 의미한다.

  background(0); // 백그라운드 컬러를 검정색으로 한다. RGB로도 표현이 가능하다.

  stroke(255,0,0);  // 도형에 대한 외곽선들을 나타내는데, 백그라운드 컬러와 달리 RGB로 표현하였다.

}

 

void draw()  { // 위의 setup()함수는 한번 실행되는 것에 반해, draw함수는 계속 실행된다. 즉, 자동 업데이트가 된다.

translate(100, 100, 0);   // 왼쪽 상단 모서리가 0,0,0 이기에, x축으로 100, y축으로 100만큼 좌표이동 한다음에 

box(50);  // 50 크기의 박스를 생성한다.

translate(100,0,0); //그리고 그 박스를 기준으로 다시 x축으로 100만큼 이동한다.

sphere(30); // 30 크기의 구를 생성한다.

translate(75,-25,0); // 다시 구를 기준으로 x축으로 75, y축으로 -25만큼 좌표이동한다.

triangle(0, 55, 28, 0, 56, 55); // 2차원 삼각형을 만들고, 세개의 꼭지점의 x, y 좌표를 지정한다.

translate(100,0,0); // 삼각형을 기준으로 x축으로 100만큼 좌표이동한다.

rect(0, 0, 55, 55, 7); // 직사각형을 만든다. 

}

 

실행화면

02cd46d8a607ca14b01d10ead866e139_1458101

 

출력(왼쪽의 Run버튼 혹은 Sketch - Run) 에러가 뜨면 몇번 누르면 실행이 된다.

02cd46d8a607ca14b01d10ead866e139_1458101

 

  


모바일 버전으로 보기