一、BlackBerry PlayBook 屏幕之上的坐标形式为:
/ * ********************************************************
* 1.X坐标轴从左至右,Y坐标轴从下至上,Z坐标轴从里至外。
* 2.OpenGL屏幕中心的坐标值是X和Y轴上的0.0f点。
* 3.中心左面的坐标值是负值,右面是正值。
* 移向屏幕顶端是正值,移向屏幕底端是负值。
* 移入屏幕深处是负值,移出屏幕则是正值。
**********************************************************
二、故在屏幕上的图标在以下情况下不可见
* **************************************************************************
* 1.绘图过小。
* 2.旋转的过程中形成了一条线或一个点(其实也是可以看到此线和点的,只是视觉效果已经不够明显)
* 3.在屏幕的深处,也就是Y轴坐标处于负值的那些坐标构成的面。这是觉得看不见的。
* ***************************************************************************/
三、顶点数组法绘制图形
/* *******************************************************
1.用函数开启用数组顶点法绘制图形的功能;
2.调用对应用方法指定顶点数组;
3.调用glDrawArrays开始绘图。
*代码对应如下:
<span style="font-size:14px;">glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, cubeVertices);
glDrawArrays(GL_TRIANGLES, 0, vertexNumber); </span>
*参数注释:
1.GL_VERTEX_ARRAY 表示用glEnableClientState函数开启对应的功能,还有其它的参数,具体可见原函数手册。
3.GL_TRIANGLES表示绘制图形的形式,此参数表示每三个点绘制一个三角形,之间不连接。第二个参数表示从哪一个点开始绘制;第三个参数vertexNumber表示顶点的“个数”。
* ********************************************************/
四、图形的坐标系变换
/* ****************************************************
* 1.glLoadIdentity()
将当前的用户坐标系的原点移到了屏幕中心。
* 2.glTranslatef(x, y, z)
其作用就是将你绘点坐标的原点在当前原点的基础上平移一个(x,y,z)向量。使你绘制的图形坐标都是相对于平移后原点坐标的坐标值。
* 3.glRotatef(angle, x, y, z)
旋转轴经过原点,方向为(x,y,z),旋转角度为angle,方向满足右手定则。
**************************************************************/
五、总结
/ *********************************************************
在初始化好程序界面之后(用工具函数及库函数,样例中都已经被初始化),就可以用OpenGL函数进行图形的绘制。知道屏幕的坐标形式后可以由图形的几何特点及OpenGL顶点绘图法的方式绘制相应的图形。然后利用图形的坐标变换就可以得到在屏幕任意位置的图形。
*************************************************************/
|