设计模式之State

State模式的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为. 何时使用? State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else 进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取...

2012-07-21 19:58:12

阅读数:509

评论数:0

Java 设计模式 之 状态模式(State)

Java 设计模式 之 状态模式(State)   2011-10-22 18:20:07|  分类:Java 设计模式 |  标签:java  设计模式  状态模式  state  |字号 订阅 定义:允许一个对象的内部状态改变时改变它的行为。对象看起来似乎修改了它的类。...

2012-07-20 19:39:36

阅读数:305

评论数:0

Android OpenGL ES 开发教程(27):材质及光照示例

设置物体表面材料(Material)的反光属性(颜色和材质)的方法如下: public void glMaterialf(int face,int pname,float param) public void glMaterialfv(int face,int pname,float[] pa...

2012-07-19 21:24:38

阅读数:1592

评论数:0

Android OpenGL ES 开发教程(26):设置光照效果Set Lighting

上一篇简单介绍了OpenGL中使用的光照模型,本篇结合OpenGL ES API说明如何使用光照效果: 设置光源定义法线设置物体材料光学属性 光源 OpenGL ES中可以最多同时使用八个光源,分别使用0到7表示。 OpenGL ES光源可以分为 平行光源(Parallel li...

2012-07-19 21:05:03

阅读数:1600

评论数:0

Android OpenGL ES 开发教程(25):OpenGL光照模型

前面绘制球体时Android OpenGL ES 开发教程(22):绘制一个球体 ,为了能看出3D效果,给场景中添加光源。如果没有光照,绘出的球看上去和一个二维平面上圆没什么差别,如下图,左边为有光照效果的球体,右边为同一个球体但没有设置光源,看上去就没有立体效果,因此OpenGL 光照效果对显示...

2012-07-19 20:43:44

阅读数:1590

评论数:0

Android OpenGL ES 开发教程(24):Depth Buffer

OpenGL ES 中Depth Buffer 保存了像素与观测点之间的距离信息,在绘制3D图形时,将只绘制可见的面而不去绘制隐藏的面,这个过程叫”Hidden surface removal” ,采用的算法为”The depth buffer algorithm”。 一般来说,填充的物体的顺序...

2012-07-19 20:38:05

阅读数:632

评论数:0

Android OpenGL ES 开发教程(23):FrameBuffer

OpenGL ES 中的FrameBuffer 指的是存储像素的内存空间。对应一个二维图像,如果屏幕分辨率为1280X1024 ,如果屏幕支持24位真彩色 (RGB),则存储这个屏幕区域的内存至少需要1024X1280X3个字节。此外如果需要支持透明度(Alpha),则一个像素需要4个字节。 对...

2012-07-19 20:32:23

阅读数:1289

评论数:0

Android OpenGL ES 开发教程(22):绘制一个球体

OpenGL ES 只能通过绘制三角形来构造几何图形,比如前面绘制的20面体Android OpenGL ES 开发教程(12):绘制一个20面体,通过增加正多面体的边数,就可以构造出一个球体: 在项目中创建一个Sphere 类,它的Draw 方法,通过绘制三角形来构造球体,并且为其添加法线...

2012-07-19 20:25:42

阅读数:875

评论数:0

Android OpenGL ES 开发教程(21):定义3D模型的前面和后面

OpenGL ES 使用也只能使用三角形来定义一个面(Face),为了获取绘制的高性能,一般情况不会同时绘制面的前面和后面,只绘制面的“前面”。虽然“前面”“后面”的定义可以应人而易,但一般为所有的“前面”定义统一的顶点顺序(顺时针或是逆时针方向)。 只绘制“前面”的过程称为”Culling”。 ...

2012-07-19 20:22:17

阅读数:713

评论数:0

Android OpenGL ES 开发教程(20):颜色Color

OpenGL ES 支持的颜色格式为RGBA模式(红,绿,蓝,透明度)。颜色的定义通常使用Hex格式0xFF00FF 或十进制格式(255,0,255), 在OpenGL 中却是使用0…1之间的浮点数表示。 0为0,1相当于255(0xFF)。 我们在Android OpenGL ES 开发教程...

2012-07-19 20:20:17

阅读数:930

评论数:0

Android OpenGL ES 开发教程(19):绘制迷你太阳系

前面介绍了3D坐标系统和3D坐标变换以及在OpenGL ES中坐标变换的过程,并与相机拍照片的过程做类比,以便更好的理解这OpenGL中构造3D模型的一部步骤: 本例提供绘制一个迷你太阳系系统作为前面知识的总结,这个迷你太阳系,有一个红色的太阳,一个蓝色的地图和一个白色的月亮构成: 太阳居...

2012-07-19 20:18:25

阅读数:1900

评论数:0

Android OpenGL ES 开发教程(18):Viewport变换

摄影师调整好相机和被拍摄物体的位置角度(modelview) ,对好焦距(projection)后,就可以按下快门拍照了,拍好的照片可以在计算机上使用照片浏览器查看照片,放大,缩小,拉伸,并可以将照片显示窗口在屏幕上任意拖放。对应到3D绘制就是Viewport 变换,目前的显示器大多还是2D的,v...

2012-07-18 20:11:49

阅读数:2447

评论数:0

Android OpenGL ES 开发教程(17):投影变换Projection

前面ModelView变换相当于拍照时放置相机和调整被拍物体的位置和角度。投影变换则对应于调整相机镜头远近来取景。 下面代码设置当前Matrix模式为Projection投影矩阵: gl.glMatrixMode(GL_PROJECTION); gl.glLoadIdentity(); 后...

2012-07-18 20:04:24

阅读数:877

评论数:0

Android OpenGL ES 开发教程(16):Viewing和Modeling(MODELVIEW) 变换

Viewing和Modeling 变换关系紧密,对应到相机拍照为放置三角架和调整被拍物体位置及角度,通常将这两个变换使用一个modelview 变换矩阵来定义。对于同一个坐标变换,可以使用不同的方法来想象这个变换,比如将相机向某个方向平移一段距离,效果等同于将被拍摄的模型(model)向相反的方向...

2012-07-18 19:59:53

阅读数:779

评论数:0

Android OpenGL ES 开发教程(15):通用的矩阵变换指令

Android OpenGL ES 对于不同坐标系下坐标变换,大都使用矩阵运算的方法来定义和实现的。这里介绍对应指定的坐标系(比如viewmodel, projection或是viewport) Android OpenGL ES支持的一些矩阵运算及操作。 OpenGL ES 中使用四个分量(x...

2012-07-18 17:43:22

阅读数:663

评论数:0

Android OpenGL ES 开发教程(14):三维坐标系及坐标变换初步

OpenGL ES图形库最终的结果是在二维平面上显示3D物体(常称作模型Model)这是因为目前的打部分显示器还只能显示二维图形。但我们在构造3D模型时必须要有空间现象能力,所有对模型的描述还是使用三维坐标。也就是使用3D建模,而有OpenGL ES库来完成从3D模型到二维屏幕上的显示。 这个过...

2012-07-18 17:30:34

阅读数:1069

评论数:0

Android OpenGL ES 开发教程(13):阶段小结

之前介绍了什么是 OpenGL ES ,OpenGL ES 管道的概念,什么是EGL,Android中OpenGL ES的开发包以及GLSurfaceView,OpenGL ES所支持的基本几何图形:点,线,面,已及如何使用这些基本几何通过构成较复杂的图像(20面体)。 Android Op...

2012-07-18 17:15:28

阅读数:446

评论数:0

Android OpenGL ES 开发教程(12):绘制一个20面体

前面介绍了OpenGL ES所有能够绘制的基本图形,点,线段和三角形。其它所有复杂的2D或3D图形都是由这些基本图形构成。 本例介绍如何使用三角形构造一个正20面体。一个正20面体,有12个顶点,20个面,30条边构成: 创建一个DrawIcosahedron Activity, 定义20...

2012-07-14 19:40:51

阅读数:508

评论数:0

Android OpenGL ES 开发教程(11):绘制三角形Triangle

三角形为OpenGL ES支持的面,同样创建一个DrawTriangle Activity,定义6个顶点使用三种不同模式来绘制三角形: float vertexArray[] = { -0.8f, -0.4f * 1.732f, 0.0f, 0.0f, -0.4f * 1.732f, 0...

2012-07-14 19:35:24

阅读数:404

评论数:0

Android OpenGL ES 开发教程(10):绘制线段Line Segment

创建一个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...

2012-07-14 19:31:57

阅读数:550

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭