ΠΡΠΈΠ΄Π½Π΅ΡΡΡΠΎΠ²ΡΠΊΠΈΠΉ ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ Π£Π½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΈΠΌ. Π’. Π. Π¨Π΅Π²ΡΠ΅Π½ΠΊΠΎ ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° № 1
Π’Π΅ΠΌΠ°: «ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ OpenGL».
Π’ΠΈΡΠ°ΡΠΏΠΎΠ»Ρ, 2010 Π³.
1. Π¦Π΅Π»Ρ: ΠΠ·ΡΡΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ OpenGL.
2. ΠΠ°Π΄Π°ΡΠ°: ΠΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΉ y=sin (x)
3. ΠΠ΅ΡΠΎΠ΄ΠΈΠΊΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ: ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΎΠ±Π»Π°ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΡΡΠΎΠΈΠΌ Π³ΡΠ°ΡΠΈΠΊ ΠΏΠΎ ΡΠΎΡΠΊΠ°ΠΌ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ ΠΈΡ
ΠΎΡΡΠ΅Π·ΠΊΠ°ΠΌΠΈ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
#include
#include
#include
GLint Width = 512, Height = 512; //Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π°
//Π€ΡΠ½ΠΊΡΠΈΡ Π²ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅
void Display ()
{
glClearColor (1, 1, 1, 1);
glClear (GL_COLOR_BUFFER_BIT);
glColor3d (0, 0, 0);
glBegin (GL_LINES);
glVertex2d (0, 0);
glVertex2d (10, 0);
glVertex2d (0, -1.5);
glVertex2d (0, 1.5);
glEnd ();
glColor3d (0, 0, 1);
glBegin (GL_LINE_STRIP);
for (double i = 0; i < 10; i += 0.1)
glVertex2d (i, sin (i));
glEnd ();
glFinish ();
}
//Π€ΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π°
void Reshape (GLint w, GLint h)
{
Width = w;
Height = h;
// ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
glViewport (0, 0, w, h);
// ΠΎΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡ
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glOrtho (-2, 12, -2, 2, -1, 1);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity ();
}
// Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
void Keyboard (unsigned char key, int x, int y)
{
#define ESCAPE '33'
if (key == ESCAPE)
exit (0);
}
// ΠΠ»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
void main (int argc, char* argv[])
{
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_RGB);
glutInitWindowSize (Width, Height);
glutCreateWindow («Sin (x)»);
glutDisplayFunc (Display);
glutReshapeFunc (Reshape);
glutKeyboardFunc (Keyboard);
glutMainLoop ();
}
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ: