Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2014, 14:52   #1
TPK93
Новичок
Джуниор
 
Регистрация: 10.11.2012
Сообщений: 1
По умолчанию Закрашивание при анимации

Проблема такова, анимирую кручение объекта(паралелограмм с нанесенной текстурой), который находится на другом статическом объекте(прямоугольник на него тоже нанесена текстура), нужно чтобы паралелограмм закрашивался, но при анимации происходит закрашивание не только нужного объекта, но и прямоугольника(хотя команду закрашивания пишу только в дисплейном списке паралелограмма). Итак как сделать по божески?))(Есть идея с выносом дисплейного списка за процедуру, но т.к. с помощью OpenGL рисую недавно реализовать не вышло..)
Код:
procedure TForm1.Timer1Timer(Sender: TObject); //таймер анимирующий
begin
     K:=K+10; //приращение ротейта
     Draw;   //рисующая процедура
 
 end;
procedure TForm1.Draw;
 
begin
  wglMakeCurrent(Canvas.Handle, hrc);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0);
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
  //==========================================
   glClear(GL_COLOR_BUFFER_BIT);
   glEnable(GL_DEPTH_TEST);
   glClear(GL_DEPTH_BUFFER_BIT);
   glShadeModel(GL_FLAT);
 
   //===============================Прямоугольник
   glEnable(GL_TEXTURE_2D);
      LoadTexture ('TE2.bmp', TexName1);
      LoadTexture ('TEXX1.bmp', TexName2);
      glBindTexture(GL_TEXTURE_2D,TexName1);
     glBegin (GL_QUADS);
      glTexCoord2f(0,1);
     glVertex3f( -1, 1, -0.5);
 
      glTexCoord2f(0,0);
      glVertex3f(-1,-1, -0.5);
 
      glTexCoord2f(1,0);
     glVertex3f( 1,-1, -0.5);
 
      glTexCoord2f(1,1);
     glVertex3f( 1,1, -0.5);
     glEnd();
     //============================= Паралелограмм
   glBindTexture(GL_TEXTURE_2D,TexName2);
   glNewList(1, GL_COMPILE);
   glBegin(GL_TRIANGLE_FAN);
                      glColor3f(0,1,0);   //===============закрашивающая команда!
                      glTexCoord2f(0.1,0.25);
                      glVertex3f(-0.5,0.8,0);
                      glTexCoord2f(0.25,0.75);
                      glVertex3f(0.5,0.5,0);
                      glTexCoord2f(0.9,0.75);
                      glVertex3f(0.5,-0.8,0);
                      glTexCoord2f(0.75,0.25);
                       glVertex3f(-0.5,-0.5,0);
 
   glEnd();
   glEndList;
   glPushMatrix;
   SwapBuffers(hrc);
        glRotate(K, 0,0,1);
    glCallList(1);
 
  //============================================================================
  wglMakeCurrent (0, 0);
end;
Изображения
Тип файла: jpg Снимок.jpg (40.2 Кб, 129 просмотров)

Последний раз редактировалось TPK93; 06.05.2014 в 17:27.
TPK93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрашивание полей BDGrid при одинаковых значениях(С++) XuMuK237 Помощь студентам 0 01.05.2013 01:29
Закрашивание объекта Николая Ленин C# (си шарп) 0 19.12.2011 23:54
Закрашивание SlaYeR_DD Помощь студентам 2 10.06.2010 12:43
при загрузке винды (т.е. самой анимации) компьютер начал перезагружаться MORFIK Windows 12 29.06.2009 20:22