FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
CG_Lab_Programs/CG_Lab_Program4/Prog4.cpp at master · sidpug/CG_Lab_Programs · GitHub
sidpug
CG_Lab_Programs
Repository navigation
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
CG_Lab_Programs
/
CG_Lab_Program4
/
Prog4.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
80 lines (79 loc) · 2.36 KB
Breadcrumbs
CG_Lab_Programs
/
CG_Lab_Program4
/
Prog4.cpp
Copy path
File metadata and controls
80 lines (79 loc) · 2.36 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#
include
<
stdlib.h
>
#
include
<
GL/glut.h
>
GLfloat vertices[][
3
] = { {-
1
,-
1
,-
1
},{
1
,-
1
,-
1
},{
1
,
1
,-
1
},{-
1
,
1
,-
1
}, {-
1
,-
1
,
1
},{
1
,-
1
,
1
}, {
1
,
1
,
1
},{-
1
,
1
,
1
} };
GLfloat colors[][
3
] = { {
1
,
0
,
0
},{
1
,
1
,
0
},{
0
,
1
,
0
},{
0
,
0
,
1
}, {
1
,
0
,
1
},{
1
,
1
,
1
},{
0
,
1
,
1
},{
0.5
,
0.5
,
0.5
} };
void
polygon
(
int
a,
int
b,
int
c,
int
d)
{
glBegin
(
GL_POLYGON
);
glColor3fv
(colors[a]);
glVertex3fv
(vertices[a]);
glColor3fv
(colors[b]);
glVertex3fv
(vertices[b]);
glColor3fv
(colors[c]);
glVertex3fv
(vertices[c]);
glColor3fv
(colors[d]);
glVertex3fv
(vertices[d]);
glEnd
();
}
void
colorcube
(
void
)
{
polygon
(
0
,
3
,
2
,
1
);
polygon
(
0
,
4
,
7
,
3
);
polygon
(
5
,
4
,
0
,
1
);
polygon
(
2
,
3
,
7
,
6
);
polygon
(
1
,
2
,
6
,
5
);
polygon
(
4
,
5
,
6
,
7
);
}
GLfloat theta[] = {
0.0
,
0.0
,
0.0
};
GLint axis =
2
;
GLdouble viewer[] = {
0.0
,
0.0
,
5.0
};
/*
initial viewer location
*/
void
display
(
void
)
{
glClear
(
GL_COLOR_BUFFER_BIT
|
GL_DEPTH_BUFFER_BIT
);
glLoadIdentity
();
gluLookAt
(viewer[
0
], viewer[
1
], viewer[
2
],
0.0
,
0.0
,
0.0
,
0.0
,
1.0
,
0.0
);
glRotatef
(theta[
0
],
1.0
,
0.0
,
0.0
);
glRotatef
(theta[
1
],
0.0
,
1.0
,
0.0
);
glRotatef
(theta[
2
],
0.0
,
0.0
,
1.0
);
colorcube
();
glFlush
();
glutSwapBuffers
();
}
void
mouse
(
int
btn,
int
state,
int
x,
int
y)
{
if
(btn ==
GLUT_LEFT_BUTTON
&& state ==
GLUT_DOWN
) axis =
0
;
if
(btn ==
GLUT_MIDDLE_BUTTON
&& state ==
GLUT_DOWN
) axis =
1
;
if
(btn ==
GLUT_RIGHT_BUTTON
&& state ==
GLUT_DOWN
) axis =
2
; theta[axis] +=
2.0
;
if
(theta[axis] >
360.0
) theta[axis] -=
360.0
;
display
();
}
void
keys
(
unsigned
char
key,
int
x,
int
y)
{
if
(key ==
'
x
'
) viewer[
0
] -=
1.0
;
if
(key ==
'
X
'
) viewer[
0
] +=
1.0
;
if
(key ==
'
y
'
) viewer[
1
] -=
1.0
;
if
(key ==
'
Y
'
) viewer[
1
] +=
1.0
;
if
(key ==
'
z
'
) viewer[
2
] -=
1.0
;
if
(key ==
'
Z
'
) viewer[
2
] +=
1.0
;
display
();
}
void
myReshape
(
int
w,
int
h)
{
glViewport
(
0
,
0
, w, h);
glMatrixMode
(
GL_PROJECTION
);
glLoadIdentity
();
if
(w <= h)
glFrustum
(-
2.0
,
2.0
, -
2.0
* (GLfloat)h / (GLfloat)w,
2.0
* (GLfloat)h / (GLfloat)w,
2.0
,
20.0
);
else
glFrustum
(-
2.0
,
2.0
, -
2.0
* (GLfloat)w / (GLfloat)h,
2.0
* (GLfloat)w / (GLfloat)h,
2.0
,
20.0
);
glMatrixMode
(
GL_MODELVIEW
);
}
void
main
(
int
argc,
char
** argv)
{
glutInit
(&argc, argv);
glutInitDisplayMode
(
GLUT_DOUBLE
|
GLUT_RGB
|
GLUT_DEPTH
);
glutInitWindowSize
(
500
,
500
);
glutCreateWindow
(
"
Colorcube Viewer USN:1AH18CS092
"
);
glutReshapeFunc
(myReshape);
glutDisplayFunc
(display);
glutMouseFunc
(mouse);
glutKeyboardFunc
(keys);
glEnable
(
GL_DEPTH_TEST
);
glutMainLoop
();
}
Back
|
FazBrowse Home
|
New Git URL