콘텐츠
OpenGL 또는 Open Graphics Library는 다양한 프로그래밍 언어와 플랫폼으로 2D 및 3D 애플리케이션을 작성하기위한 그래픽 API (Application Programming Interface)입니다. 단순하고 원시적 인 오브젝트에서 복잡한 3D 장면에 이르기까지 모든 것을 렌더링하는 데 사용할 수 있습니다. Open GL은 컴퓨터 디자인, 과학적 시각화, 비행 시뮬레이션 및 비디오 게임에 널리 사용됩니다. OpenGl에는 직접 원을 그리는 방법이 없지만 일련의 선을 사용하여 원을 만들 수 있습니다. 원을 그리려면 OpenGL에 대한 기본 지식이 있어야합니다.
1 단계
OpenGL 뷰포트로 기본 프로그램을 만듭니다. 이 프로세스에 익숙하지 않은 경우 OpenGL 페이지에 자습서가 있습니다.
2 단계
프로그램 시작 부분에 다음 코드를 입력하여 프로그램에 math.h.header 파일을 추가하십시오. #include 콜백 함수를 표시하기 전에 다음 코드를 추가하여 circle 메서드를 시작합니다. void drawCircle (GLint x, GLint y, GLint 반경, int num_lines) {} "x"및 "y"변수는 창에서 원의 중심을 정의하는 데 사용되며 "반경"은 원의 반지름을 설정합니다. 정수 "num_lines"는 원을 구성하는 데 사용되는 행 수입니다. 이 숫자가 클수록 원이 더 부드러워집니다. 키 내부에 다음 구성 코드를 추가합니다. 부동 각도 GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO. "angle"변수에는 원을 구성하는 데 사용되는 선의 각도가 포함됩니다. glColor3f () 함수를 호출하면 선의 색상이 검은 색으로 설정됩니다. 여기서 일련의 0은 0에서 1까지의 눈금에서 빨간색, 녹색 및 파란색의 강도에 해당합니다. 4 단계의 glColor3f () 함수 아래에 다음 코드를 추가합니다. glBegin (GL_LINE_LOOP) GO 이것은 OpenGL에게 모든 후속 라인에 드로잉 라인이 포함된다는 것을 알려줍니다. 특히 일련의 연결된 선인 "GL_LINE_LOOP"를 그립니다. 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 ()에 대한 호출은 선의 끝점 좌표를 계산합니다. 루프 대상 뒤에 다음 코드 줄을 입력합니다. glEnd () GO 그러면 OpenGL에게 선 그리기가 완료되었음을 알립니다. 장면에 원을 그리려면 drawCircle () 메서드의 호출을 프로그램의 콜백 표시 함수에 추가합니다.이 함수는 1 단계에서 준비해야합니다. x, y, 반경 및 num_lines 값을 지정합니다. 여기서 x 및 y는 점을 나타냅니다. 장면에서 반경은 원의 반경이고 num_lines는 원을 구성하는 선의 수입니다. 다시 말하지만, OpenGL과 콜백 디스플레이에 익숙하지 않은 경우 OpenGL 자습서를 참조하십시오. 프로그램을 컴파일하고 실행하십시오. 함수를 올바르게 입력했다면 오류없이 컴파일되어야합니다. x, y 및 반경 값을 지정한 경우 흰색 배경에 검은 색 원이 표시되어야합니다.3 단계
4 단계
5 단계
6 단계
7 단계
8 단계
9 단계