OpenGL에서 원을 렌더링하는 방법

작가: Eugene Taylor
창조 날짜: 16 팔월 2021
업데이트 날짜: 1 칠월 2024
Anonim
D3D 텍스트 렌더링
동영상: D3D 텍스트 렌더링

콘텐츠

OpenGL 또는 Open Graphics Library는 다양한 프로그래밍 언어와 플랫폼으로 2D 및 3D 애플리케이션을 작성하기위한 그래픽 API (Application Programming Interface)입니다. 단순하고 원시적 인 오브젝트에서 복잡한 3D 장면에 이르기까지 모든 것을 렌더링하는 데 사용할 수 있습니다. Open GL은 컴퓨터 디자인, 과학적 시각화, 비행 시뮬레이션 및 비디오 게임에 널리 사용됩니다. OpenGl에는 직접 원을 그리는 방법이 없지만 일련의 선을 사용하여 원을 만들 수 있습니다. 원을 그리려면 OpenGL에 대한 기본 지식이 있어야합니다.

1 단계

OpenGL 뷰포트로 기본 프로그램을 만듭니다. 이 프로세스에 익숙하지 않은 경우 OpenGL 페이지에 자습서가 있습니다.


2 단계

프로그램 시작 부분에 다음 코드를 입력하여 프로그램에 math.h.header 파일을 추가하십시오. #include . 이렇게하면 원을 계산하는 데 필요한 cos () 및 sin () (사인 및 코사인) 함수가 제공됩니다.

3 단계

콜백 함수를 표시하기 전에 다음 코드를 추가하여 circle 메서드를 시작합니다.

void drawCircle (GLint x, GLint y, GLint 반경, int num_lines) {}

"x"및 "y"변수는 창에서 원의 중심을 정의하는 데 사용되며 "반경"은 원의 반지름을 설정합니다. 정수 "num_lines"는 원을 구성하는 데 사용되는 행 수입니다. 이 숫자가 클수록 원이 더 부드러워집니다.

4 단계

키 내부에 다음 구성 코드를 추가합니다.

부동 각도 GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO.

"angle"변수에는 원을 구성하는 데 사용되는 선의 각도가 포함됩니다. glColor3f () 함수를 호출하면 선의 색상이 검은 색으로 설정됩니다. 여기서 일련의 0은 0에서 1까지의 눈금에서 빨간색, 녹색 및 파란색의 강도에 해당합니다.


5 단계

4 단계의 glColor3f () 함수 아래에 다음 코드를 추가합니다.

glBegin (GL_LINE_LOOP) GO

이것은 OpenGL에게 모든 후속 라인에 드로잉 라인이 포함된다는 것을 알려줍니다. 특히 일련의 연결된 선인 "GL_LINE_LOOP"를 그립니다.

6 단계

glBegin () 호출 후 for 루프에 대해 다음 코드를 입력합니다.

for (int i = 0; i <row_number; i ++) {angle = i * 2 * M_PI / num_line; glVertex2f (x + (cos (각도) * 반경), y + (sin (각도) * 반경)); }

이 루프는 세 가지 작업을 수행합니다. 먼저, "num_lines"의 값에 따라 반복합니다. 여기서 num_lines는 정수이며 각 반복에서 선을 그리고 결과적으로 직선 num_lines로 구성된 원이됩니다. 둘째, 원의 중심을 기준으로 한 선의 각도를 라디안 단위로 계산합니다. "M_P"는 pi를 나타내는 math.h에 정의 된 상수입니다. 마지막으로 glVertex2f ()에 대한 호출은 선의 끝점 좌표를 계산합니다.


7 단계

루프 대상 뒤에 다음 코드 줄을 입력합니다.

glEnd () GO

그러면 OpenGL에게 선 그리기가 완료되었음을 알립니다.

8 단계

장면에 원을 그리려면 drawCircle () 메서드의 호출을 프로그램의 콜백 표시 함수에 추가합니다.이 함수는 1 단계에서 준비해야합니다. x, y, 반경 및 num_lines 값을 지정합니다. 여기서 x 및 y는 점을 나타냅니다. 장면에서 반경은 원의 반경이고 num_lines는 원을 구성하는 선의 수입니다. 다시 말하지만, OpenGL과 콜백 디스플레이에 익숙하지 않은 경우 OpenGL 자습서를 참조하십시오.

9 단계

프로그램을 컴파일하고 실행하십시오. 함수를 올바르게 입력했다면 오류없이 컴파일되어야합니다. x, y 및 반경 값을 지정한 경우 흰색 배경에 검은 색 원이 표시되어야합니다.

차고 문은 차고와 비, 눈과 같은 날씨 요소로부터 차고와 차를 보호하고 기물 파손과 절도로부터 보호하기 위해 집안에 안전과 편의를 제공합니다. 자동 게이트는 자동차 밖으로 나가지 않고도 열 수 있기 때문에 매우 편리합니다. 그러나 게이트가 오프닝 중간에 멈 추면이 문제를 해결하는 방법을 알아야합니다. 게이트가 중간에 열리면 문제를 해결할 수 있습니다. (F...

꽃병에 사탕무를 심는 법

Peter Berry

칠월 2024

사탕무를 심는 데는 넓은 정원이나 농장이 필요하지 않습니다. 작은 공간을 가진 사람이라면 누구나 냄비에 심을 수 있습니다. 씨앗, 토양, 태양, 비료 및 물 만 있으면됩니다. 사탕무는 달콤하고 영양가 있으며 거의 ​​모든 조건에서 자랍니다. 집에서 맛있는 사탕무를 재배하여 야채 섭취를 늘리십시오. 사탕무는 통조림으로 만들거나 요리 할 수 ​​있고, 너는 초...

인기 오늘