使用鼠标功能时,我试图了解从窗口坐标轴(原点左上角)到OpenGL
坐标轴(原点左下角)的地图。在相关书中,这个地图由以下两行描述:
points[count].x = (float) x / (w/2) - 1.0;
points[count].y = (float) (h-y) / (h/2) - 1.0;
我怀疑这两行描绘了一个比例。你能否对这张地图进行直观的数学解释?
答案 0 :(得分:2)
你指的是什么书? NDC空间中的原点是视口的中心( 0,0 是中心; -1,-1 是左下角; 1, 1 是右上角)。任何其他坐标空间由投影矩阵定义。
我相信本书试图教你的是 NDC -1,-1 是视口的左下角, NDC < / strong> 1,1 是右上角。
NDC X =(2.0 *(Screen X - Viewport X )/ Viewport W ) - 1.0;
NDC Y =(2.0 *(Screen Y - Viewport Y )/ Viewport H ) - 1.0;
您当然还需要一个额外的步骤,因为Y轴在鼠标坐标系中的运行方向相反。这就是为什么您在映射h-y