반응형
안이 채워져 있는 원 그리기
#include <GL/freeglut.h>
#include <math.h>
void draw(void)
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f, 0.0f, 0.0f);
double rad = 0.5;
glBegin(GL_POLYGON);
for (int i = 0; i < 360; i++)
{
double angle = i * 3.141592 / 180;
double x = rad * cos(angle);
double y = rad * sin(angle);
glVertex2f(x, y);
}
glEnd();
glFinish();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA | GLUT_DEPTH);
glutInitWindowPosition(800, 200);
glutCreateWindow("Example");
glutDisplayFunc(draw);
glutMainLoop();
}
실행 결과
안이 비워져 있는 원 그리기
#include <GL/freeglut.h>
#include <math.h>
void draw(void)
{
//안이 비워져있느 원 그리기
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f, 0.0f, 0.0f);
double rad = 0.5;
double x[360], y[360];
glBegin(GL_LINES);
for (int i = 0; i < 360; i++) {
double angle;
angle = i * 3.141592 / 180;
x[i] = rad * cos(angle);
y[i] = rad * sin(angle);
}
for (int i = 0; i < 359; i++) {
glVertex2f(x[i], y[i]);
glVertex2f(x[i + 1], y[i + 1]);
}
glEnd();
glFinish();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA | GLUT_DEPTH);
glutInitWindowPosition(800, 200);
glutCreateWindow("Example");
glutDisplayFunc(draw);
glutMainLoop();
}
실행 결과
반응형
'OpenGL' 카테고리의 다른 글
[OpenGL] 쉐이더(shader)/ 쉐이딩 구현 하기 (0) | 2024.02.19 |
---|---|
[OpenGL] 줌 인, 줌 아웃 구현하기 (0) | 2024.02.18 |
[OpenGL] 도형 애니메이션 만들기 (1) | 2024.02.17 |
[OpenGL] 주전자(Teapot) 그리기, 도형 회전 시키기, 도형 이동 시키기 (0) | 2024.02.16 |
[OpenGL] 점(point) 그리기 (0) | 2024.02.15 |