ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ гСомСтричСских Ρ‚Π΅Π» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenGL

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€ΠΈΠ΄Π½Π΅ΡΡ‚Ρ€ΠΎΠ²ΡΠΊΠΈΠΉ ГосударствСнный УнивСрситСт ΠΈΠΌ. Π’. Π“. Π¨Π΅Π²Ρ‡Π΅Π½ΠΊΠΎ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° № 3. Π’Π΅ΠΌΠ°: «ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ гСомСтричСских Ρ‚Π΅Π» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenGL». Ѐункция вызываСтся ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΊΠ½Π°. УстанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ области отобраТСния. Ѐункция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. GLdouble alpha = 0, betta = 0, gamma = 0; // ΡƒΠ³Π»Ρ‹ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°. Ѐункция вырисовки Π½Π° ΡΠΊΡ€Π°Π½Π΅. ΠžΡ‚Ρ€ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΠ°Ρ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ гСомСтричСских Ρ‚Π΅Π» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenGL (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΡ€ΠΈΠ΄Π½Π΅ΡΡ‚Ρ€ΠΎΠ²ΡΠΊΠΈΠΉ ГосударствСнный УнивСрситСт ΠΈΠΌ. Π’. Π“. Π¨Π΅Π²Ρ‡Π΅Π½ΠΊΠΎ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° № 3

Π’Π΅ΠΌΠ°: «ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ гСомСтричСских Ρ‚Π΅Π» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenGL».

Π’ΠΈΡ€Π°ΡΠΏΠΎΠ»ΡŒ, 2010 Π³.

1. ЦСль: Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°, пСрСноса, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΡΡ‚роСния основных ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² графичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenGL.

2. Π—Π°Π΄Π°Ρ‡Π°: ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€ΠΈΡΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ²ΠΎΠ»ΠΎΡ‡Π½Ρ‹ΠΉ Ρ‡Π°ΠΉΠ½ΠΈΠΊ. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ w, s, a, d, [, [ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎΠΊΡ€ΡƒΠ³ осСй X, Y, Z.

3. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: Π‘Ρ‚Ρ€ΠΎΠΈΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ»ΠΎΡ‡Π½Ρ‹ΠΉ Ρ‡Π°ΠΉΠ½ΠΈΠΊ. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Π½ΠΈΡ… измСняСм ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΠ³Π»Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Π΅ΠΌ Ρ‡Π°ΠΉΠ½ΠΈΠΊ.

РСшСниС

#include

#include

GLint Width = 512, Height = 512;

GLdouble alpha = 0, betta = 0, gamma = 0; // ΡƒΠ³Π»Ρ‹ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°

//Ѐункция вырисовки Π½Π° ΡΠΊΡ€Π°Π½Π΅

void Display ()

{

glClearColor (1, 1, 1, 1);

glClear (GL_COLOR_BUFFER_BIT);

glColor3d (0, 0, 0);

glPushMatrix ();

glTranslated (5, 5, 0);

glRotated (5*alpha, 1, 0, 0);

glRotated (5*betta, 0, 1, 0);

glRotated (5*gamma, 0, 0, 1);

glutWireTeapot (2);

glPopMatrix ();

glFinish ();

}

//Ѐункция вызываСтся ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΊΠ½Π°

void Reshape (GLint w, GLint h)

{

Width = w;

Height = h;

// устанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ области отобраТСния

glViewport (0, 0, w, h);

// отрографичСская проСкция

glMatrixMode (GL_PROJECTION);

glLoadIdentity ();

glOrtho (0, 10, 0, 10, -10, 10);

glMatrixMode (GL_MODELVIEW);

glLoadIdentity ();

}

// Ѐункция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹

void Keyboard (unsigned char key, int x, int y)

{

#define ESCAPE 27

if (key == ESCAPE)

exit (0);

if (key == `w')

alpha += 0.1;

if (key == `s')

alpha -= 0.1;

if (key == `a')

betta += 0.1;

if (key == `d')

betta -= 0.1;

if (key == `[`)

gamma += 0.1;

if (key == `]')

gamma -= 0.1;

glutPostRedisplay ();

}

// Π“Π»Π°Π²Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» прилоТСния

void main (int argc, char* argv[])

{

glutInit (&argc, argv);

glutInitDisplayMode (GLUT_RGB);

glutInitWindowSize (Width, Height);

glutCreateWindow («True Teapot»);

glutDisplayFunc (Display);

glutReshapeFunc (Reshape);

glutKeyboardFunc (Keyboard);

glutMainLoop ();

}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ