언어/프로세싱

[프로세싱] 다양한 그리기 함수

Linuxpia 2024. 9. 17. 13:58
반응형

다양한 그리기 함수

프로세싱(Processing)에서 그리기와 관련된 함수들은 주로 도형, 색상, 선 등의 요소를 화면에 표시하기 위해 사용됩니다. 아래는 프로세싱에서 자주 사용되는 그리기 관련 함수들입니다.

1. 기본 도형 그리기 함수

  • point(x, y): 주어진 좌표 (x, y)에 점을 그립니다.
  • line(x1, y1, x2, y2): 두 점 (x1, y1)과 (x2, y2) 사이에 선을 그립니다.
  • rect(x, y, w, h): 왼쪽 상단 모서리가 (x, y)이고 너비 w와 높이 h를 가진 사각형을 그립니다.
  • ellipse(x, y, w, h): 중심이 (x, y)이고 너비 w와 높이 h를 가진 타원을 그립니다.
  • triangle(x1, y1, x2, y2, x3, y3): 세 점 (x1, y1), (x2, y2), (x3, y3)을 연결하는 삼각형을 그립니다.
  • arc(x, y, w, h, start, stop): 중심이 (x, y)이고 너비 w와 높이 h를 가진 타원에서 start 각도부터 stop 각도까지의 호를 그립니다.

2. 색상 및 채우기 설정 함수

  • stroke(r, g, b): 선의 색상을 RGB 값으로 설정합니다. stroke(0)은 검정색, stroke(255)는 흰색을 의미합니다.
  • strokeWeight(weight): 선의 두께를 설정합니다.
  • noStroke(): 선을 그리지 않도록 설정합니다.
  • fill(r, g, b): 도형의 내부 채우기 색상을 RGB 값으로 설정합니다.
  • noFill(): 도형의 내부를 채우지 않도록 설정합니다.

3. 곡선 그리기 함수

  • bezier(x1, y1, cx1, cy1, cx2, cy2, x2, y2): 두 제어점 (cx1, cy1)과 (cx2, cy2)을 사용하여 시작점 (x1, y1)과 끝점 (x2, y2)을 연결하는 베지어 곡선을 그립니다.
  • curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2): 두 제어점 (cx1, cy1)과 (cx2, cy2)을 사용하여 곡선을 그립니다.

4. 그리기 환경 설정 함수

  • background(r, g, b): 배경 색상을 설정합니다. background(255)는 흰색, background(0)은 검정색을 의미합니다.
  • size(width, height): 창의 크기를 설정합니다.
  • clear(): 화면을 지웁니다.

5. 그리기 순서와 레이어

  • beginShape()endShape(): 다각형이나 복잡한 도형을 그리기 위해 사용됩니다. 두 함수 사이에 vertex(x, y)를 사용하여 도형의 각 점을 정의합니다.

프로세싱으로 그린 응접실 대형 TV

void setup() {
  size(800, 600); // 화면 크기 설정
  drawLivingRoom(); // 응접실 그리기
}

void drawLivingRoom() {
  background(220); // 배경색 설정 (회색 톤의 벽)
  
  // 바닥 그리기
  fill(180); // 바닥 색상 (좀 더 진한 회색)
  rect(0, height * 0.6, width, height * 0.4); // 바닥
  
  // TV 받침대 그리기
  fill(100); // 받침대 색상 (짙은 회색)
  rect(width * 0.25, height * 0.65, width * 0.5, height * 0.05); // 받침대
  
  // TV 본체 그리기
  fill(0); // TV 색상 (검정색)
  rect(width * 0.3, height * 0.2, width * 0.4, height * 0.4); // TV
  
  // TV 화면 그리기
  fill(50); // TV 화면 색상 (어두운 회색)
  rect(width * 0.31, height * 0.22, width * 0.38, height * 0.36); // TV 화면
  
  // 스피커 그리기
  fill(80); // 스피커 색상 (회색)
  rect(width * 0.28, height * 0.4, width * 0.015, height * 0.15); // 왼쪽 스피커
  rect(width * 0.705, height * 0.4, width * 0.015, height * 0.15); // 오른쪽 스피커
  
  // TV 스탠드 다리 그리기
  fill(100); // 스탠드 다리 색상 (짙은 회색)
  rect(width * 0.35, height * 0.7, width * 0.02, height * 0.05); // 왼쪽 다리
  rect(width * 0.63, height * 0.7, width * 0.02, height * 0.05); // 오른쪽 다리
}

이러한 함수들을 조합하여 다양한 그래픽을 생성할 수 있습니다. 예를 들어, 원을 그리고 색상을 채우려면 ellipse()fill() 함수를 사용하면 됩니다. 프로세싱에서는 이 외에도 복잡한 그래픽 작업을 지원하는 다양한 함수들이 있습니다.