今日功課畫一張圖以及文字輸出,不過我以為是要自己在OpenGL創作隨機畫一張圖,結果畫完圖後要用polygon stipple來顯示。好吧,當時有點忙,所以就懶得改了,就只好直接把PPT寫的fire範例加上去。
1. glMatrixMode(GL_PROJECTION)
切換MatrixMode到projection matrix上(預設是modelview 的matrix),projection和modelview的matrix一開始都是單位矩陣,projection是投影的矩陣,modelview是使用者看的矩陣。
2.glOrtho(-7,7,-7,7,7,-7)
把此範圍投影到clipping window上,glOrtho(左,右,下,上,前,後)。
3.Polygon stipple
glEnable(GL_POLYGON_STIPPLE)開啟Polygon stipple→glPolygonStipple(fire)載入fire的圖→接下來如果畫一個正方形,那個正方形裡面就會都是fire的圖案了。
glPolygonStipple(fire) fire(pattern)為32*32bit。以16進位放在陣列中。
4.Line stipple
glEnable(GL_LINE_STIPPLE)開啟Line stipple→glLineStipple(1,0x0303)。
1(factor):每bit代表piexls for display (Default 為1),0x0303(pattern)。
Ps Polygon stipple 的pattern(fire)存放到fram buffer裡面時順序是不會相反的,不過Line stipple則會。
5.glutBitmapCharacter(GLUT_BITMAP_8_BY_13,'C')
glutBitmapCharacter可以直接印出文字,以上面範例來說,指定8*13的bitmap character來印出C。
結果:
程式碼: