创建一个DrawLine Activity,定义四个顶点:
float vertexArray[] = {
-0.8f, -0.4f * 1.732f, 0.0f,
-0.4f, 0.4f * 1.732f, 0.0f,
0.0f, -0.4f * 1.732f, 0.0f,
0.4f, 0.4f * 1.732f, 0.0f,
};
分别以三种模式GL_LINES,GL_LINE_STRIP,GL_LINE_LOOP 来绘制直线:
public void DrawScene(GL10 gl) {
super.DrawScene(gl);
ByteBuffer vbb
= ByteBuffer.allocateDirect(vertexArray.length*4);
vbb.order(ByteOrder.nativeOrder());
FloatBuffer vertex = vbb.asFloatBuffer();
vertex.put(vertexArray);
vertex.position(0);
gl.glLoadIdentity();
gl.glTranslatef(0, 0, -4);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertex);
index++;
index%=10;
switch(index){
case 0:
case 1:
case 2:
gl.glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
gl.glDrawArrays(GL10.GL_LINES, 0, 4);
break;
case 3:
case 4:
case 5:
gl.glColor4f(0.0f, 1.0f, 0.0f, 1.0f);
gl.glDrawArrays(GL10.GL_LINE_STRIP, 0, 4);
break;
case 6:
case 7:
case 8:
case 9:
gl.glColor4f(0.0f, 0.0f, 1.0f, 1.0f);
gl.glDrawArrays(GL10.GL_LINE_LOOP, 0, 4);
break;
}
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}
这里index 的目的是为了延迟一下显示(更好的做法是使用固定时间间隔)。前面说过GLSurfaceView 的渲染模式有两种,一种是连续不断的更新屏幕,另一种为on-demand ,只有在调用requestRender() 在更新屏幕。 缺省为RENDERMODE_CONTINUOUSLY 持续刷新屏幕。
OpenGLDemos 使用的是缺省的RENDERMODE_CONTINUOUSLY持续刷新屏幕 ,因此Activity的drawScene 会不断的执行。本例中屏幕上顺序以红,绿,蓝色显示LINES, LINE_STRIP,LINE_LOOP。
分享到:
相关推荐
Android OpenGL ES绘制线段Line Segment
LSD: a Line Segment Detector
Keil 中的报警错误:WARNING L15: MULTIPLE CALL TO SEGMENT。
统一线段检测 该存储库包含该论文的官方PyTorch实现:ULSD:。 介绍 是一种统一的线段检测方法,用于检测来自针Kong,鱼眼或球形摄像机的畸变图像和未畸变图像。 通过基于贝塞尔曲线的新颖线段表示,我们的方法可以...
请使用进行数值稳定的相交测试(但不计算相交点),或者将用于与ES模块类似的例程(line-segment-intersect-2d为commonjs)。 例子 var intersect = require ( 'line-segment-intersect-2d' ) console . log ( ...
a Line Segment Detector 一种线段快速检测算法
关于此源代码 此文件夹中的文件包含 ELSD 的源代码,发表于“A Parameterless Line Segment and Elliptical Arc Detector with Enhanced Ellipse Fitting”, V. Patraucean, P. Gurdjos, R. Grompone von Gioi, ...
android 自定义segment 能运行的
BL51 BANKED LINKER/LOCATER V6.22 10/13/2017 23:08:20 PAGE 1 BL51 BANKED LINKER/LOCATER V6.22, INVOKED BY: D:\51PROGRAM FILES\C51\BIN\BL51.EXE STARTUP.obj, chuankou.obj TO chuankou RAMSIZE (256) ...
今天来说说*** WARNING L15: MULTIPLE CALL TO SEGMENT这个问题!
zz_segment_rectange_test.m 是脚本测试,它通过使用随机段绘制它并打印段附近的长度来测试 segment_rectange.m。 segment_rectange.m 的用法: L=segment_rectange(a,b,r) 矩形轴矩形是 0<=x<=a 0<=y<...
alsa-lib alsa-utils 在android编译成功 warning: shared library text segment is not shareable error: treating warnings as errors 编译器的选项要加上 --no-fatal-warnings 可无论怎么加, 加到那儿都变成了...
使用IAR开发ADI的ADUC70XX系列单片机时,编译出现下面错误提示: Fatal Error[e72]: Segment FIQ_STACK must b
本附件实现的是 在opengles 2.0 中实现 绘制的线段颜色平滑过渡, 想要进一步学习的同学可以关注 https://edu.csdn.net/course/detail/23746
c语言源码,已测试可以直接运行,目前效果最好的直线提取方法之一,速度比hough变换高,而且效果要明显好很多
matlab绘制线段代码表单处理问题中的线段检测 表单处理是一个过程,通过该过程可以捕获输入到文档表单字段中的信息并将其转换为电子格式。 表单域通常组织成表格结构,其中线段分隔不同的表单域。 当已知表单域在...
本文实例为大家分享了unity绘制一条流动弧线的具体代码,供大家参考,具体内容如下 最终效果 把下面脚本复制,直接拖上脚本,设置两个点(物体)的位置 GameObject1是开始点的位置,GameObject2是结束点的位置 ...
Redux细分 用于Redux的Segment.io分析集成。 npm install --save redux-segment产品特点只需轻按一下即可将您的数据发送到100多个应用程序(例如Google Analytics(分析),Mixpanel,Optimizely,Facebook Ads,...
进制转换 这是学汇编语言时的一些程序 对初学者很有帮助