OpenGL之鼠标控制坐标系旋转、缩放、移动

OpenGL之鼠标控制坐标系旋转、缩放、移动

1、实现代码

void CMyStatic::OnMouseMove(UINT nFlags, CPoint point)

{

    // TODO: 在此添加消息处理程序代码和/或调用默认值

    if (point.x<920)

    {

        int diffX = (int)(point.x - m_fLastX);

        int diffY = (int)(point.y - m_fLastY);

        m_fLastX = (float)point.x;

        m_fLastY = (float)point.y;

 

        // Left mouse button

        if (nFlags & MK_LBUTTON)

        {

            m_fRotX += (float)0.5f * diffY;

 

            if ((m_fRotX > 360.0f) || (m_fRotX < -360.0f))

            {

                m_fRotX = 0.0f;

            }

 

            m_fRotY += (float)0.5f * diffX;

 

            if ((m_fRotY > 360.0f) || (m_fRotY < -360.0f))

            {

                m_fRotY = 0.0f;

            }

        }

 

        // Right mouse button

        else if (nFlags & MK_RBUTTON)

        {

            m_fZoom -= (float)0.1f * diffY;

        }

 

        // Middle mouse button

        else if (nFlags & MK_MBUTTON)

        {

            m_fPosX += (float)0.05f * diffX;

            m_fPosY -= (float)0.05f * diffY;

        }

    }

    CStatic::OnMouseMove(nFlags, point);

}

2、效果图

旋转(鼠标右键实现)

OpenGL之鼠标控制坐标系旋转、缩放、移动_第1张图片

 OpenGL之鼠标控制坐标系旋转、缩放、移动_第2张图片

缩放(鼠标左键实现):

OpenGL之鼠标控制坐标系旋转、缩放、移动_第3张图片

OpenGL之鼠标控制坐标系旋转、缩放、移动_第4张图片

移动(鼠标滚轮按键实现):


你可能感兴趣的:(鼠标,mfc,OpenGL,三维,坐标系旋转移动缩放)