Главная страница
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-1305008500
бумбум
2011-05-10 10:21
2011.08.21
Перенести содержимое TreeView в другой


3-1263036650
Soi
2010-01-09 14:30
2011.08.21
SQL - функция получения длинны запрашиваемого поля


2-1305114003
Max
2011-05-11 15:40
2011.08.21
все про Excel


4-1249391200
DevilDevil
2009-08-04 17:06
2011.08.21
Создать пункт меню с иконкой. Желательно с альфаканалом


1-1263466343
NBAH1990
2010-01-14 13:52
2011.08.21
Копирование текста из Ворда в RichViewEdit