这个功能的确切含义是什么
if(w<=h)
glortho(-2.0,2.0,-2.0*(GLfloat)h/(GLfloat)w,2.0*(GLfloat)h/(GLfloat)w,-2.0,2.0);
else
glortho(-2.0*(GLfloat)w/(GLfloat)h,2.0*(GLfloat)w/(GLfloat)h,-2.0,2.0,-2.0,2.0);
我知道glortho用于正交视图,可以查看3d对象(left,right,bottom,top near,far
)视图
为什么使用负号和正号以及为什么它除以高度和宽度
答案 0 :(得分:1)
如您所知,glOrtho
调用将前4个参数的left
,right
,top
和bottom
值作为参数。这样做是根据某物的宽度和高度调整投影的纵横比(可能是绘制的窗口或视口)。如果宽度小于高度,则它将按高度与宽度的比例缩放高度,并将宽度保留为4个单位(-2到+2)。如果高度小于宽度,则它将高度保留为4个单位,并缩放宽度以保持正确的宽高比。