「초입문 코드 10선!」【Processing-3D】
9372 단어 processingprocessing3
소개
개인적으로 생각하는 초기본적이고 필요하다고 생각하는 3D용 Processing의 코드입니다.
( 「초필수 코드 10선!」【Processing】의 필수 코드는 생략되었습니다.)
1. size (500, 500, P3D);
3D 공간에서 화면의 가로와 세로 크기를 각각 500px로 한다.
Reference: size();
2. point(250,250,250);
좌표 (250,250,250)의 위치에 점을 그립니다.
Reference: point();
3. box(10, 20, 30);
폭 10px, 높이 20px, 깊이 30px(x, y, z축 방향 각각에 10,20, 30px의 길이)의 직육면체를 그린다.
Reference: box();
4. sphere(100);
반경 100px의 구체를 그립니다.
Reference: sphere();
5. translate(100,100,100);
x, y, z 축 방향 각각에 100씩 도형을 그리는 기준의 위치를 어긋나게 한다.
Reference: translate();
6. rotate(PI/4);
π/4(45도)만 도형을 그리는 기준의 방향을 어긋나게 한다. (z축 방향)
rotateX(PI/4);
: X축 방향으로 이동한다. rotateY(PI/4);
: Y축 방향으로 이동한다. rotateZ(PI/4);
: Z축 방향으로 어긋난다. 라디안을 실수치로 건네주는 형태가 되기 때문에, 만약 도수법으로 건네주고 싶은 경우는,
radians();
를 사용하면 된다.예)
rotateX(radians(45));
Reference: rotate();
7. 카메라(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);
카메라 위치의 좌표를 입력합니다.
화면의 중심 위치 (이 경우 기준점을 중앙으로 만들려면 모두 0으로 설정)
카메라 방향 (기본적으로 0.0/1.0/-1.0 중 하나를 입력)
Reference: camera();
8. lights();
기준 위치에 기준 방향으로 조명을 비추십시오.
보다 세세한 라이트의 설정을 할 경우, 다음의 코드를 이용한다.
코드
의미
ambientLight();
주변 광원
directionalLight();
평행 광원
pointLight();
점 광원
spotLight();
스포트라이트
noLights();
빛 없음
Reference: lights();
9. 오리지널 도형(Custom 3D Shape)
주로 사용하는 코드는 다음의 3개이다.
beginShape();
도형 정의를 시작할 때 작성하는 코드. endShape();
도형의 정의를 마칠 때 쓰는 코드. vertex();
도형의 요소를 작성하는 코드. Reference: beginShape(); , endShape(); , vertex();
예를 들어 3D 공간에 사각형을 그릴 때는 다음과 같이 그릴 수 있습니다.
>> 샘플 코드(customShape.pde)
customShape.pde
void setup(){
//settings
size(500,500,P3D);
translate(250,250,0);
rotateX(radians(45));
rotateZ(radians(20));
// writing custom shape
beginShape();
vertex(10, 10, 0);
vertex(100, 10, 0);
vertex(100, 100, 0);
vertex(10, 100, 0);
vertex(10, 10, 0);
endShape();
}
>>출력 결과(customShape.pde)
>>설명(customShape.pde)
vertex();
에서 각 좌표를 차례로 추적하고 도형을 그립니다.출력에서 입체적인 시점으로 되어 있는 것은, 기준점의 각도를
rotateX();
와 rotateZ();
로 바꾸고 있기 때문.10. ortho();
원근감이 없는 입체로 한다.
Reference: ortho();
>> 샘플 코드(ortho.pde)
ortho.pde
void setup(){
//settings
size(500,500,P3D);
translate(250,250,0);
rotateX(radians(45));
//changing to ortho setting
ortho();
// making the box object
box(100,100,100);
}
>>출력 결과(ortho.pde)
Tips : OPENGL에서 고속/고정밀도로 그리기
OPENGL은 빠르고 고정밀도로 3D 공간을 표현할 수 있는 라이브러리이다.
할 일
- import processing.opengl.*;
에서 라이브러리 가져오기
- size(500,500,OPENGL);
에서 P3D 대신 OPENGL
>> 샘플 코드(OPENGL.pde)
OPENGL.pde//importing the library
import processing.opengl.*;
void setup(){
//settings - sets to OPENGL in size();
size(500,500,OPENGL);
translate(250,250,0);
rotateX(radians(45));
// making the box object
box(100,100,100);
}
>>출력 결과(OPENGL.pde)
Reference
이 문제에 관하여(「초입문 코드 10선!」【Processing-3D】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/umi_mori/items/58ade92d9fbb9f9ed696
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
//importing the library
import processing.opengl.*;
void setup(){
//settings - sets to OPENGL in size();
size(500,500,OPENGL);
translate(250,250,0);
rotateX(radians(45));
// making the box object
box(100,100,100);
}
Reference
이 문제에 관하여(「초입문 코드 10선!」【Processing-3D】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/umi_mori/items/58ade92d9fbb9f9ed696텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)