Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2011.08.21;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Media";
Текущий архив: 2011.08.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.003 c
8-1215009117
DFT
2008-07-02 18:31
2011.08.21
OpenGL вращение сцены


13-1126851536
Антон773
2005-09-16 10:18
2011.08.21
перенос кода с win32 на .net


15-1304313612
Константинов
2011-05-02 09:20
2011.08.21
Домашняя сеть


15-1304108999
Юрий
2011-04-30 00:29
2011.08.21
С днем рождения ! 30 апреля 2011 суббота


15-1303780922
Мазут
2011-04-26 05:22
2011.08.21
Защитил свои авторские права - в турьму...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский