Система часток

Автор работы: Пользователь скрыл имя, 13 Апреля 2012 в 15:09, курсовая работа

Краткое описание

Задачей курсового проектирования является разработка программной системы от начала (анализ требований) до конца (тестирование и сопровождение-документация).
В ходе выполнения курсовой работы получить профессиональные навыки в постановке задачи, анализе требований, выборе представления исходных данных и результата, разработке спецификаций, проектирования программной системы, написании программы на выбранном языке программирования с использованием объектно-ориентированной технологии и библиотек классов, тестировании и отладке программы, оформлении документации.

Содержание работы

Вступ…………………………………………………………………………….3
Опис алгоритму ………………………………………………………………..4
Текст програми.………………………………………………………………...5
Список використаної літератури …………………………………………….9

Содержимое работы - 1 файл

Курсова робота.doc

— 46.50 Кб (Скачать файл)

            particle->speed += 0.1f;

            particle->distance += 1.0f;

            // Уборка мусора

            if (particle->distance > 50.0f) {

                std::vector<Particle>::iterator temp = iterator;

                particle_storage.erase(temp);

            }

            iterator++;

        }

} 

void RenderScene(void) {

    glClearColor(0.5f, 0.5f, 0.5f, 0.5f);

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    particle_out();

    glutSwapBuffers();

} 

void motion(int x, int y) {

    mouse_position.x = x;

    mouse_position.y = y;

} 

void new_particle(int null) {

    Particle *new_part = new Particle();

    new_part->x = mouse_position.x;

    new_part->y = 500 - mouse_position.y; // Исправить на правильную высоту окна.

    new_part->speed = 0;

    new_part->angle = 6.28f*std::rand()/RAND_MAX;

    new_part->distance = 0; 

    particle_storage.push_back(*new_part);

    glutTimerFunc(1, new_particle, 0);

} 

void mouse(int button, int state, int x, int y) {

} 

void reshape(int width, int height) // Установка матрици проэкции и матрици вида.

{

      glViewport(0, 0, (GLsizei) width, (GLsizei) height);

      glMatrixMode(GL_PROJECTION);

      glLoadIdentity();

      glOrtho(0, width, 0, height, -1.0f, 100.0f);

      glMatrixMode(GL_MODELVIEW);

      glLoadIdentity();

} 

int main(int argc, char** argv) {

      glutInit(&argc, argv);

      glutInitWindowSize(500, 500);

      glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);

      glutCreateWindow("Particle");

      //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

      //Инициализация современного opengl.

      GLenum err = glewInit();

      if (GLEW_OK != err) {

            std::cout << "Error: " << glewGetErrorString(err) << std::endl;

      }

      std::cout << "Status: Using GLEW " << glewGetString(GLEW_VERSION) << std::endl;

      //=============================================================================

      //Продолжение старой программы.

      glutDisplayFunc(RenderScene);

      glEnable(GL_TEXTURE_2D); // Разрешение наложение текстуры

        glEnable(GL_BLEND);

        glDisable(GL_DEPTH_TEST);

        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

      //glEnable(GL_COLOR_MATERIAL);

      //glAlphaFunc(GL_GREATER, 0); //Разрешение альфа канала

      //glEnable(GL_ALPHA_TEST); //в пнг изображении

      glutReshapeFunc(reshape);

      glutPassiveMotionFunc(motion);

      glutMouseFunc(mouse); 

      addTexture("star", "star.png"); 

        glutTimerFunc(1, new_particle, 0);

        glutTimerFunc(40, rotate, 0);

      //glShadeModel(GL_SMOOTH);

      glutMainLoop();

} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

СПИСОК   ВИКОРИСТАНОЇ ЛІТЕРАТУРИ: 

  1. Лесневский  А.С. Объектно-ориентированное программирование
  2. Иванова Г.С. Объектно-ориентированное программирование – М, 2003

Информация о работе Система часток