티스토리 뷰

이름    createShape()

예제 

PShape square;  // PShape 객체

void setup() {
  size(100, 100);
  // 사각형인 PShape 객체를 생성합니다.
  // 매개변수 사용법은 rect() 함수와 비슷합니다.
  square = createShape(RECT, 0, 0, 50, 50);
  square.setFill(color(0, 0, 255));
  square.setStroke(false);
}

void draw() {
  shape(square, 25, 25);
}

_____________________________

PShape s;  // PShape 객체

void setup() {
  size(100, 100);
  // 각 정점을 일일이 지정하는 방식으로 사각형인 커스텀 PShape 객체를 생성합니다. 
  s = createShape();
  s.beginShape();
  s.fill(0, 0, 255);
  s.noStroke();
  s.vertex(0, 0);
  s.vertex(0, 50);
  s.vertex(50, 50);
  s.vertex(50, 0);
  s.endShape(CLOSE);
}

void draw() {
  shape(s, 25, 25);
}

_____________________________


PShape s;

void setup() {
  size(100, 100, P2D);
  s = createShape();
  s.beginShape(TRIANGLE_STRIP);
  s.vertex(30, 75);
  s.vertex(40, 20);
  s.vertex(50, 75);
  s.vertex(60, 20);
  s.vertex(70, 75);
  s.vertex(80, 20);
  s.vertex(90, 75);
  s.endShape();
}

void draw() {
  shape(s, 0, 0);
}

_____________________________

PShape alien, head, body;

void setup() {
  size(100, 100);

  // 도형 그룹을 생성합니다.
  alien = createShape(GROUP);

  // 두 개의 도형을 생성합니다.
  ellipseMode(CORNER);
  head = createShape(ELLIPSE, -25, 0, 50, 50);
  head.setFill(color(255));
  body = createShape(RECT, -25, 45, 50, 40);
  body.setFill(color(0));

  // 부모 그룹에 두개의 "자식" 객체를 추가합니다.
  alien.addChild(body);
  alien.addChild(head);
}

void draw() {
  background(204);
  translate(50, 15);
  shape(alien); // 도형 그룹을 그립니다.
}


설명

createShape() 함수는 새로운 도형을 정의할 때 사용됩니다. 일단 도형이 생성되면, 이 도형은 shape() 함수로 그릴 수 있습니다. 이 함수는 기본적으로 새로운 기본도형을 정의합니다. 다음 매개변수들 중 하나를 첫번째 매개변수로 사용할 수 있습니다: ELLIPSE, RECT, ARC, TRIANGLE, SPHERE, BOX, QUAD, 또는 LINE 이 그것입니다. 이 매개변수들은 대응되는 다음 도형함수들과 동일합니다: ellipse(), rect(), arc(), triangle(), sphere(), box(), quad(), 그리고 line() 입니다. 위의 첫번째 예제는 그 작동원리를 보여주고 있습니다.

커스텀 도형들은 createShape() 함수를 매개변수 없이 사용해서 만들 수 있습니다. 도형이 그려지기 시작하고 나면, 그리기 속성이나 기하 함수들은 beginShape() 와 endShape() 메소드 사이에서 곧바로 적용될 수 있습니다. 위의 두번째 예제를 보면, beginShape()가 어떤 방식으로 사용되고있는지 알 수 있습니다.

또한 createShape() 함수는 다른 도형들로 이루어진 복잡한 도형을 만드는 데에도 사용될 수 있습니다. 그러한 도형은 "그룹"이라고 불리우며, GROUP을 첫번째 매개변수로 사용하여 만들 수 있습니다. 네번째 예제를 보면 그 작동방식을 파악할 수 있습니다.

createShape() 함수를 사용하고 나면, 선과 채우기 색상은 위의 예시처럼 setFill() 과 setStroke() 메소드를 호출해 바로 설정할 수 있습니다. PShape 클래스의 모든 메소드와 필드 리스트는 Processing Javadoc에서 확인할 수 있습니다.


문법

createShape()
createShape(type)
createShape(kind, p)


매개변수

kind	int: POINT, LINE, TRIANGLE, QUAD, RECT, ELLIPSE, ARC, BOX, SPHERE 중 하나
p	float[]: 도형의 종류와 맞는 매개변수


반환

PShape


연관항목

PShape
endShape()
loadShape()

댓글