OpenGL显示窗口的大小可以通过glutInitWindowSize(width, height)设置,这里width和height是显示器的像素范围。裁剪窗口坐标范围可以通过glOrtho2D(xvmin, xvmax, yvmin, yvmax)设定。
当设置裁剪窗口为: glOrtho2D(-200, 200, -100, 100)时,裁剪坐标范围为400*200大小。裁剪窗口中的一个整数坐标显示到窗口里时,只能对应一个像素点。若此时设置显示窗口大小为glutInitWindowSize(800, 400)时,那么如果用DDA或者Bresenham算法画线,这条线是不是会比较稀疏?
用GL_LINES和lineBresenham算法举例:
当设置显示窗口大小为800*400
当设置显示窗口大小为400*200
结论:裁剪区域坐标对应的屏幕像素是一对一的关系。
问题:
1 那么GL_LINES是用的那种算法画线让像素显示没有空隙?
2 如果窗口的像素范围比裁剪区域坐标大很多,如何保证显示效果?