Android OpenGL ES 画多边形

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 12:14 我要评论(0)

一、基础知识:

OpenGL ES目前只支持三角形,但任何多边形都可拆分成多个三角形,所以无所谓这个限制的存在。

1.OpenGL中的坐标点:

每一个坐标点由(X, Y, Z)组成。

定义一个三角形的顶点数组:

[java]

int one = 0x10000;

//三角形三个顶点

private IntBuffer triggerBuffer = IntBuffer.wrap(new int[]{

0,one,0, //上顶点

-one,-one,0, //左下点

one,-one,0,}); //右下点

int one = 0x10000;

//三角形三个顶点

private IntBuffer triggerBuffer = IntBuffer.wrap(new int[]{

0,one,0, //上顶点

-one,-one,0, //左下点

one,-one,0,}); //右下点定义一个正方形的顶点数组:

[java]

//正方形的4个顶点

private IntBuffer quaterBuffer = IntBuffer.wrap(new int[]{

one,one,0,

-one,one,0,

one,-one,0,

-one,-one,0});

//正方形的4个顶点

private IntBuffer quaterBuffer = IntBuffer.wrap(new int[]{

one,one,0,

-one,one,0,

one,-one,0,

-one,-one,0});

2.OpenGL中的坐标系:

当调用gl.glLoadIdentity()函数之后,实际上是将当前点移动到了屏幕中心,

X坐标轴从左至右,Y坐标轴从下至上,Z坐标轴从里至外。

OpenGL屏幕中心的坐标值是X轴和Y轴的0.0f点。

中心左边的坐标值是负值,右边是正值;

移向屏幕顶端是正值,移向屏幕底端是负值;

移入屏幕深处是负值,移出屏幕则是正值。

在绘制时,我们可以使用glTranslatef函数来移动画笔的位置,从而使图形显示在我们

想要的位置。

[java]

gl.glTranslatef(-1.5f, 0.0f, -6.0f);

gl.glTranslatef(-1.5f, 0.0f, -6.0f);此函数,就是将画笔沿X轴左移1.5f个单位,Y轴保持不变,Z轴向屏幕里面移动6.0f个单位。

将视图推入屏幕背后足够的距离以便可以看见全部的场景,这里需要注意的是屏幕内移动的单位

必须小于我们前面通过glFrustumf方法设置的最远距离,否则超出视角范围,将显示不出来。

3.OpenGL中的顶点数组:

在实际画图时,我们往往需要定位几个点,然后让OpenGL以此为基准来画图。在设置顶点位置前,

我们需要按照以下步骤来启用我们的顶点数组:

①开启顶点设置动能:

[java]

gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);

gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);②设置顶点数组:

[java] view plaincopyprint?gl.glVertexPointer(3, GL10.GL_FIXED, 0, triggerBuffer);

gl.glVertexPointer(3, GL10.GL_FIXED, 0, triggerBuffer);glVertexPointer(int size, int type, int stride, Buffer pointer)

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...