Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.08.21;
Скачать: CL | DM;

Вниз

OpenGL вращение сцены   Найти похожие ветки 

 
DFT   (2008-07-02 18:31) [0]

Здравствуйте!
Подскажите пожалуйста.
Вопрос на тему OpenGL.
Как с помощью курсора мыши (то есть двух определяемых координат), вращать объемную сцену по трем осям, как это сделано в многих CAD-программах?


 
han_malign ©   (2008-07-04 15:07) [1]

http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0_%D0%B2%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D1%8F


 
DFT   (2008-07-07 17:54) [2]

Наконец-то решил проблему.

Действительно вращение необходимо осуществлять вокруг одной произвольной оси, при этом можно достичь любого удобного положения для просмотра.

Вот найденный мной пример на С++:

void CDEMOView::OnMouseMove(UINT nFlags, CPoint point)
{
          if ( button_is_down && point != m_point )
   {
              double x = point.x - m_point.x;
             double y = point.y - m_point.y;
              if ( nFlags & MK_LBUTTON )
       {
           double t = sqrt ( x*x + y*y );
           rotate ( t, y/t, x/t, 0. );
       }
       else
              if ( nFlags & MK_RBUTTON && sy > 0 )
       {
           double t = 2./sy;
           move ( x*t, -y*t, 0. );
       }
       m_point = point;
   }
          CView::OnMouseMove(nFlags, point);
}

void CDEMOView::rotate ( double a, double x, double y, double z )
{
   glMatrixMode ( GL_MODELVIEW );
   double data[16];
   glGetDoublev ( GL_MODELVIEW_MATRIX, data );
   glLoadIdentity ();
   glRotated ( a, x, y, z );
   glMultMatrixd ( data );
   Invalidate(TRUE);
}

Всем спасибо за помощь!



Страницы: 1 вся ветка

Текущий архив: 2011.08.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.008 c
2-1304806453
Gu
2011-05-08 02:14
2011.08.21
Поиск файла в путях переменной окружения Path


15-1304182636
И. Павел
2011-04-30 20:57
2011.08.21
Связь между "логическим" и "физическим" значением сигнала


15-1304504124
Иксик
2011-05-04 14:15
2011.08.21
Сегодня я побывал в СССР by Yashar Farajov on Monday, May 2, 2011


15-1304274899
IPranker
2011-05-01 22:34
2011.08.21
C++ константы -> Delphi константы.


1-1262678404
Michail89
2010-01-05 11:00
2011.08.21
Завершение дочернего процесса