목차
1. 프로그램 개요
2. 프로그램 제공 기능 및 사용 방법
3. 구현 방법
4. 실행화면
2. 프로그램 제공 기능 및 사용 방법
3. 구현 방법
4. 실행화면
본문내용
m(-10.0, 10.0, -10.0 * (GLfloat) w/ (GLfloat) h,
10.0* (GLfloat) w / (GLfloat) h, 2.0, 20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
/* 조명과 재질을 지정하고 은면제거 활성화
새로운 2차 곡면 객체들을 생성 */
void myinit()
{
GLfloat mat_specular[]={1.0, 1.0, 1.0, 1.0};
GLfloat mat_diffuse[]={1.0, 1.0, 1.0, 1.0};
GLfloat mat_ambient[]={1.0, 1.0, 1.0, 1.0};
GLfloat mat_shininess={100.0};
GLfloat light_ambient[]={0.1, 0.1, 0.1, 1.0};
GLfloat light_diffuse[]={1.0, 0.0, 1.0, 1.0};
GLfloat light_specular[]={1.0, 1.0, 1.0, 1.0};
GLfloat light_position[]={10.0, 10.0, 10.0, 0.0};
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialf(GL_FRONT, GL_SHININESS, mat_shininess);
glShadeModel(GL_SMOOTH);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glDepthFunc(GL_LEQUAL);
glEnable(GL_DEPTH_TEST);
glClearColor(1.0, 1.0, 1.0, 1.0);
glColor3f(0.0, 0.0, 1.0);
/* 새로운 2차 곡면객체 생성 */
h=gluNewQuadric();
gluQuadricDrawStyle(h, GLU_FILL);
t=gluNewQuadric();
gluQuadricDrawStyle(t, GLU_FILL);
lua=gluNewQuadric();
gluQuadricDrawStyle(lua, GLU_FILL);
lla=gluNewQuadric();
gluQuadricDrawStyle(lla, GLU_FILL);
rua=gluNewQuadric();
gluQuadricDrawStyle(rua, GLU_FILL);
rla=gluNewQuadric();
gluQuadricDrawStyle(rla, GLU_FILL);
lul=gluNewQuadric();
gluQuadricDrawStyle(lul, GLU_FILL);
lll=gluNewQuadric();
gluQuadricDrawStyle(lll, GLU_FILL);
rul=gluNewQuadric();
gluQuadricDrawStyle(rul, GLU_FILL);
rll=gluNewQuadric();
gluQuadricDrawStyle(rll, GLU_FILL);
}
void main(int argc, char **argv)
{
int sub1_menu, sub2_menu, sub3_menu;
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutCreateWindow(\"Man Animation\");
myinit();
glutReshapeFunc(myReshape);
glutDisplayFunc(display);
glutMouseFunc(mouse);
/* 메뉴 생성 */
glutCreateMenu(menu);
/* 머리부분 서브메뉴 설정 */
sub1_menu = glutCreateMenu(menu1);
glutAddMenuEntry(\"head1\", 1);
glutAddMenuEntry(\"head2\", 2);
/* 팔 부분 서브메뉴 설정 */
sub2_menu = glutCreateMenu(menu2);
glutAddMenuEntry(\"right_upper_arm\", 3);
glutAddMenuEntry(\"right_lower_arm\", 4);
glutAddMenuEntry(\"left_upper_arm\", 5);
glutAddMenuEntry(\"left_lower_arm\", 6);
/* 다리 부분 서브메뉴 설정 */
sub3_menu = glutCreateMenu(menu3);
glutAddMenuEntry(\"right_upper_leg\", 7);
glutAddMenuEntry(\"right_lower_leg\", 8);
glutAddMenuEntry(\"left_upper_leg\", 9);
glutAddMenuEntry(\"left_lower_leg\", 10);
/* 메인 메뉴 설정 */
glutCreateMenu(menu);
glutAddSubMenu(\"head\", sub1_menu);
glutAddSubMenu(\"ram\", sub2_menu);
glutAddSubMenu(\"leg\", sub3_menu);
glutAddMenuEntry(\"torso\", 0);
glutAddMenuEntry(\"Animation\", 11);
glutAddMenuEntry(\"quit\", 12);
/* 마우스 가운데 버튼에 연결 */
glutAttachMenu(GLUT_MIDDLE_BUTTON);
/* 키보드 함수 활성화 */
glutKeyboardFunc(keys);
/* 은면 제거 활성화 */
glEnable(GL_DEPTH_TEST);
glutMainLoop();
}
10.0* (GLfloat) w / (GLfloat) h, 2.0, 20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
/* 조명과 재질을 지정하고 은면제거 활성화
새로운 2차 곡면 객체들을 생성 */
void myinit()
{
GLfloat mat_specular[]={1.0, 1.0, 1.0, 1.0};
GLfloat mat_diffuse[]={1.0, 1.0, 1.0, 1.0};
GLfloat mat_ambient[]={1.0, 1.0, 1.0, 1.0};
GLfloat mat_shininess={100.0};
GLfloat light_ambient[]={0.1, 0.1, 0.1, 1.0};
GLfloat light_diffuse[]={1.0, 0.0, 1.0, 1.0};
GLfloat light_specular[]={1.0, 1.0, 1.0, 1.0};
GLfloat light_position[]={10.0, 10.0, 10.0, 0.0};
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialf(GL_FRONT, GL_SHININESS, mat_shininess);
glShadeModel(GL_SMOOTH);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glDepthFunc(GL_LEQUAL);
glEnable(GL_DEPTH_TEST);
glClearColor(1.0, 1.0, 1.0, 1.0);
glColor3f(0.0, 0.0, 1.0);
/* 새로운 2차 곡면객체 생성 */
h=gluNewQuadric();
gluQuadricDrawStyle(h, GLU_FILL);
t=gluNewQuadric();
gluQuadricDrawStyle(t, GLU_FILL);
lua=gluNewQuadric();
gluQuadricDrawStyle(lua, GLU_FILL);
lla=gluNewQuadric();
gluQuadricDrawStyle(lla, GLU_FILL);
rua=gluNewQuadric();
gluQuadricDrawStyle(rua, GLU_FILL);
rla=gluNewQuadric();
gluQuadricDrawStyle(rla, GLU_FILL);
lul=gluNewQuadric();
gluQuadricDrawStyle(lul, GLU_FILL);
lll=gluNewQuadric();
gluQuadricDrawStyle(lll, GLU_FILL);
rul=gluNewQuadric();
gluQuadricDrawStyle(rul, GLU_FILL);
rll=gluNewQuadric();
gluQuadricDrawStyle(rll, GLU_FILL);
}
void main(int argc, char **argv)
{
int sub1_menu, sub2_menu, sub3_menu;
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutCreateWindow(\"Man Animation\");
myinit();
glutReshapeFunc(myReshape);
glutDisplayFunc(display);
glutMouseFunc(mouse);
/* 메뉴 생성 */
glutCreateMenu(menu);
/* 머리부분 서브메뉴 설정 */
sub1_menu = glutCreateMenu(menu1);
glutAddMenuEntry(\"head1\", 1);
glutAddMenuEntry(\"head2\", 2);
/* 팔 부분 서브메뉴 설정 */
sub2_menu = glutCreateMenu(menu2);
glutAddMenuEntry(\"right_upper_arm\", 3);
glutAddMenuEntry(\"right_lower_arm\", 4);
glutAddMenuEntry(\"left_upper_arm\", 5);
glutAddMenuEntry(\"left_lower_arm\", 6);
/* 다리 부분 서브메뉴 설정 */
sub3_menu = glutCreateMenu(menu3);
glutAddMenuEntry(\"right_upper_leg\", 7);
glutAddMenuEntry(\"right_lower_leg\", 8);
glutAddMenuEntry(\"left_upper_leg\", 9);
glutAddMenuEntry(\"left_lower_leg\", 10);
/* 메인 메뉴 설정 */
glutCreateMenu(menu);
glutAddSubMenu(\"head\", sub1_menu);
glutAddSubMenu(\"ram\", sub2_menu);
glutAddSubMenu(\"leg\", sub3_menu);
glutAddMenuEntry(\"torso\", 0);
glutAddMenuEntry(\"Animation\", 11);
glutAddMenuEntry(\"quit\", 12);
/* 마우스 가운데 버튼에 연결 */
glutAttachMenu(GLUT_MIDDLE_BUTTON);
/* 키보드 함수 활성화 */
glutKeyboardFunc(keys);
/* 은면 제거 활성화 */
glEnable(GL_DEPTH_TEST);
glutMainLoop();
}
추천자료
인성교육을 위한 방법
장애아 교육
유압,유압제어 발표자료
[PASCAL] 배열 이진탐색트리 삽입, 삭제, 탐색 프로그램
ERP(전사적자원관리)의 등장배경, ERP(전사적자원관리)의 특징, ERP(전사적자원관리)의 구축...
학습부진 영재아의 진단 및 지도에 대한 이해
[컴퓨터구조] 32-bit ALU 설계 및 구현, CPU의 기본 구조를 C언어로 표현, 1 bit ALU부터 32 ...
알고리즘 퀵 정렬
정보시스템 설계 및 구현
평생교육의 발전을 위한 과제 (평생 학습사회의 구현)
[마이크로프로세서응용실험] (예비) 실험 07: 7-Segment(7세그먼트) 표현 시계
교육관에 따른 교사의 자질을 논하시고, 발달이론에 따른 교사의 역할에 대하여 논하시오. - ...
2017년 2학기 컴퓨터과학과 데이터베이스설계및구현 기말시험 핵심체크
2018년 2학기 데이터베이스설계및구현 기말시험 핵심체크