OpenGL ES 中的平面圆绘制与贴图
1.无论是OPENGL,还是ES,都没有直接绘制平面圆的函数,所以必须通过描点来画。
GL_TEXTURE_COORD_ARRAY
GL_VERTEX_ARRAY
开启纹理坐标,顶点功能
!"
移动到哪,圆心就到哪了
#$%$%$
调整圆的大小,可以用#,也可以调半径
&'(GL_TEXTURE_2D%'()*
'++,+-%GL_FLOAT%%##&(.;
/',+-%GL_FLOAT%%0'&(.
1234GL_TRIANGLE_FAN%%!5%
本质上是画 !5 个点,来画 !5 个三角形。
private%oat)*%0'6new%oat)7-* 以数组来表示 360 个点
//绘制函数
forint%687-6-9
double%6double-:;PI:!5
6-<:!56=<%%即一度的周长
0')*6oat;sin%%横坐标
0')*6oat;cos%纵坐标
贴图函数,圆心纹理坐标永远是(,)
forint%687-6-9
double%6double-:;PI:!5
0')*6oat;sin:%%%纹理横坐标
0')*6oat;cos:%%纹理纵坐标
因为8 sin8而纹理坐标必须在 之间
所以 8 sin8-%%>%%8 (sin:%8
注意?%此例是通过 GL_TRIANGLE_FAN
,画三角形来画扇形,达到画圆的目的,
是实心圆。
画圆也可以
GL_LINE_LOOP
画线来画,画出的是空心圆。
但是,贴图必须通过
GL_TRIANGLE_FAN
,
GL_LINE_LOOP
可以画出来,图
却贴不上去。
- 1
- 2
前往页