android 三维坐标,Android OpenGL ES (2) 绘制三维/空间坐标系

Android OpenGL ES (二) 绘制三维/空间坐标系OpenGL ES 绘制三维/空间坐标系本程序的源代码包在:http://download.csdn.net/detail/zhangjikuan/6992735普通的三维画图大多数就是画个立方体,颜色花哨一点,但是因为项目需求,要画一个三维坐标系,并在上面显示三维向量,不是要平面的那种坐标系,而是做成像是在纸上画的那种立体长方体并...
摘要由CSDN通过智能技术生成

Android OpenGL ES (二) 绘制三维/空间坐标系

OpenGL ES 绘制三维/空间坐标系

本程序的源代码包在:http://download.csdn.net/detail/zhangjikuan/6992735

普通的三维画图大多数就是画个立方体,颜色花哨一点,但是因为项目需求,要画一个三维坐标系,并在上面显示三维向量,不是要平面的那种坐标系,而是做成像是在纸上画的那种立体长方体并显示出向量。

刚开始还是小郁闷了一会,但是忽略了其实OpenGL ES的面都是三角形组成的,面肯定就是线组成的,既然能够画三维面肯定就可以画三维线,越简单的东西越容易被忽略,原理请看上一帖,直接上程序了,程序中有详细讲解。

最后的效果图

102121339.jpg

/****************************************************************

下面是jiasudu.java

/*******************************************************************

* 此文件是关于3D坐标轴的绘制,用jiasu.java和jiasu.xml实现了用户界面

* 关于3D处理的所有程序都在此文件中

*zjk 2014/03/04

*/

public class Jiasudu implements Renderer

{

float x=-0.5f,y=-0.5f,z=-0.5f;

private float r=0;

Handler handler,handler2;

private Timer timer = new Timer();

private TimerTask task;

// 定义Open GL ES绘制所需要的Buffer对象

FloatBuffer lineVerticesBuffer;

FloatBuffer xyzVerticesBuffer;

ByteBuffer lineFacetsBuffer;

ByteBuffer xiangliangFacetsBuffer;

ByteBuffer XFacetsBuffer;

ByteBuffer YFacetsBuffer;

ByteBuffer ZFacetsBuffer;

void updateXYZ(){                                                              //2.1创建各种数组

// 定义立方体的8个顶点

float[] lineVertices = new float[] {

// 上顶面正方形的四个顶点

x, y, z,//0

x, 0,z,//1

0,0,z,//2

0,y,z,//3

// 下底面正方形的四个顶点

x,y,0,//4

x,0,0,//5

0,0,0,//6原点

0,y,0,//7

};

//定义XYZ坐标和显示的字

float xyzVertices[]=new float[]{

-1.2f ,0f, 0f,//0 x起点,画坐标轴的

1.2f ,0f, 0f,//1 X轴的终点

1.0f,0.1f,0f,//2 X轴箭头1

1.0f,-0.1f,0f,//3 X轴箭头2

0f ,-1.2f , 0f,//4 Y轴起点

0f ,1.2f , 0f,//5 Y轴终点

0.1f ,1.0f ,0f,//6 Y轴箭头1

-0.1f ,1.0f ,0f,//7 Y轴箭头2

0f ,0f ,-1.2f,//8 Z轴起点

0f ,0f ,1.2f,//9 Z轴终点

0f ,0.1f ,1.0f,//10 Z轴箭头1

0f ,-0.1f ,1.0f,//11 Z轴箭头2

1.3f,0f,0f,//12 绘制字X

1.35f,0.1f,0f,//13

1.25f,0.1f,0f,//14

1.25f,-0.1f,0f,//15

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值