两种画圆的方法,DrawCircle2()为一般的做法,利用GL_LINE_STRIP实现,
DrawCircle1()则是利用GL_LINES_LOOP实现,
但是上面两个函数都只是画出了两个圆圈,想要给circle贴图,必须画出的是一个区域,所以可以利用GL_TRIANGLE_FAN绘制,要实现纹理映射,关键是纹理坐标的分配:
圆心纹理坐标为:(0.5, 0.5)选取图片的中心。
圆圈上的点的分配:
纹理坐标必须在0,1之间,而且这些纹理坐标和圆的半径没有关系,只和圆心角有关。
因为-1< cos(delta_angle*i) <1,则==> 0 <= (cos(delta_angle*i) + 1.0)*0.5 <= 1
同理:0 <= (sin(delta_angle*i) + 1.0)*0.5 <= 1
最终的效果见下图: