Boundary and nonboundary edge flags 다각형의 경계선 설정하기
OpenGL 2019. 12. 20. 11:09 |Each vertex of a polygon, separate triangle, or separate quadrilateral specified between a glBegin/glEnd pair is marked as the start of either a boundary or nonboundary edge. If the current edge flag is TRUE when the vertex is specified, the vertex is marked as the start of a boundary edge. If the current edge flag is FALSE, the vertex is marked as the start of a nonboundary edge.
OpenGL에서 선을 그릴때 다각형의 경계선인지 숨겨야할 내부선인지 결정 할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | #include <gl/glut.h> void DoDisplay(); int main(int argc, char** argv) { glutInit(&argc, argv); glutCreateWindow("OpenGL"); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glutDisplayFunc(DoDisplay); glutMainLoop(); return 0; } void DoDisplay() { glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); glTranslatef(-0.5f, 0.0f, 0.0f); // 첫 번째 선 Nonboundary 지정 glBegin(GL_TRIANGLES); glEdgeFlag(GL_FALSE); // 경계선 적용 여부를 선택할 선의 시작점 선언 전에 glEdgeFlag()를 호출. // Flags edges as either boundary or nonboundary. glVertex2f(0.0f, 0.2f); glEdgeFlag(GL_TRUE); glVertex2f(-0.2f, -0.2f); glVertex2f(0.2f, -0.2f); glEnd(); glTranslatef(0.5f, 0.0f, 0.0f); // 두 번째 선 Nonboundary 지정 glBegin(GL_TRIANGLES); glVertex2f(0.0f, 0.2f); glEdgeFlag(GL_FALSE); glVertex2f(-0.2f, -0.2f); glEdgeFlag(GL_TRUE); glVertex2f(0.2f, -0.2f); glEnd(); glTranslatef(0.5f, 0.0f, 0.0f); // 세 번째 선 Nonboundary 지정 glBegin(GL_TRIANGLES); glVertex2f(0.0f, 0.2f); glVertex2f(-0.2f, -0.2f); glEdgeFlag(GL_FALSE); glVertex2f(0.2f, -0.2f); glEdgeFlag(GL_TRUE); glEnd(); glPopMatrix(); glFlush(); } |
Run the program.
'OpenGL' 카테고리의 다른 글
Simple Solar System 간단한 태양계 그리기 (4) | 2019.12.17 |
---|---|
Rotation 회전 (0) | 2019.12.13 |
Keeping the aspect ratio 종횡비 유지하기 (0) | 2019.12.12 |
GLUT(freeglut)으로 간단한 OpenGL 예제 만들기 (0) | 2019.11.24 |