Иллюстрированный самоучитель по Visual Studio.Net

         

Включаем анимацию


Реакция на сообщение о том, что истек очередной квант времени в 33 миллисекунды (именно такую установку мы сделали в OnLButtonUp) выглядит очень просто. Увеличиваем углы поворота изображения на те кванты, которые вычислили в функции OnMouseMove и вызываем перерисовку окна. Так как при непрерывном вращении углы постоянно растут, то можно искусственно реализовать естественную их периодичность с циклом в 360 градусов. Однако с этой задачей успешно справляется OpenGL, и вы можете убрать код ограничения углов:

void COGView: :OnTimer (UINT nIDEvent)

{

//====== Если это был наш таймер

if (nIDEvent==l)

{

//====== Увеличиваем углы поворота

m_AngleX += m_dy;

m_AngleY += m_dx;

//====== Ограничители роста углов

if (m_AngleX > 360)

m_AngleX -= 360;

if (m_AngleX <-360)

m_AngleX += 360;

if (m_AngleY > 360)

m_AngleY -=360;

if (m_AngleY <-360)

m_AngleY +=360;

//====== Просим перерисовать окно

Invalidate(FALSE);



}

else

//=== Каркас приложения обработает другие таймеры

CView::OnTimer(nIDEvent);

}

Запустите и протестируйте приложение. Скорректируйте, если необходимо, коэффициенты чувствительности.



Содержание раздела