일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tomcat
- MariaDB
- graph database
- Eclipse
- Spring Boot
- PG-Strom
- BRIN
- exit code = -805306369
- orioledb
- NestJS
- Spring
- Next.js
- Java
- STS
- Can't load AMD 64-bit .dll on a IA 32-bit platform
- Maven Project
- NextJs
- HTML Special Entity
- maven
- Spring Cloud
- loadcomplete
- springboot
- 서브라임 텍스트
- OGM
- tortoise SVN
- HTML Code
- typeorm
- PostgreSQL
- JSP
- Windows 10
- Today
- Total
Undergoing
입력 n이 주어질 때 원주상에 균일하게 자리잡은 n 개의 점들을 서로 연결한 그림을 출력하는 OpenGL 프로그램을 작성하시오. 본문
입력 n이 주어질 때 원주상에 균일하게 자리잡은 n 개의 점들을 서로 연결한 그림을 출력하는 OpenGL 프로그램을 작성하시오.
Halkrine 2010. 3. 19. 00:00Hint
n개의 점의 좌표를 구함
theta = 2*pi / n
Glfloat x[n],y[n]
for(i=0; i<n; i++)
x[i]=r*cos(i*theta)
y[i]=r*sin(i*theta)
두 쌍의 점들을 선분으로 연결
for(i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
선분 ij를 그린다.
소스
--------------------------------------------------------------------------------
#include<stdio.h>
#include<stdlib.h>
#include<GL/glut.h>
#include<math.h>
const int n = 20; //20회 그리도록 고정 상수값 지정
float r = 1; //반지름 1로 지정
float x[n], y[n]; //원의 좌표
float pi = 3.14; //원주율
float theta = pi*2 / n; //세타값 설정. 원주율*2/n
void Circle()
{
int i, j;
for(i=0; i<n; i++) // n개의 점의 좌표를 구함
{
x[i]=r*cos(i*theta);
y[i]=r*sin(i*theta);
}
for(i=0; i<n-1; i++) //두 쌍의 점들을 선분으로 연결
{
for(j=i+1; j<n; j++) //선분 i와 j를 그린다.
{
glBegin(GL_LINES);
glVertex2f(x[i], y[i]);
glVertex2f(x[j], y[j]);
glEnd();
}
}
glFinish(); //원 그리기 끝. 이걸 생략하면 프로그램이 끝나지 않는다.
}
void main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); //윈도우의 속성을 요청. 프레임버퍼 1개. RGB컬러 사용
glutInitWindowPosition(0,0); //화면 좌상단의 위치 지정
glutInitWindowSize(640,480); //640*480 픽셀단위로 지정
glutCreateWindow("golf");
glutDisplayFunc(Circle);
glutMainLoop();
}
--------------------------------------------------------------------------------
결과
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
과제 후 검토사항
- n값을 직접 입력받아 처리하고 싶었는데 기술 부족으로 구현 실패. n이 const가 아닐 경우 나머지 함수들에서 처리할 수 없음.
- 과제와는 다르게 무식하게 크게 나온 것 같지만 상관업ㅂ어.
'~2012.05.01 Legacy' 카테고리의 다른 글
OpenGL로 시계 그리기 (0) | 2010.04.06 |
---|---|
Agile Process Model (0) | 2010.03.31 |
삼각형 분할하기 + 사면체 분할하기 (0) | 2010.03.17 |
가스켓 프로그램 (0) | 2010.03.14 |
[LINUX/UNIX] 왜 리눅스를 배워야 하는가 (0) | 2009.10.04 |