Browsed by
Month: December 2006

m3g note 4

m3g note 4

///////////////////    note 4///////////////////1.camer的可视范围照相机利用setPerspective方法设置在它前端的坐标系统中什么范围内的对象是可见的。 2.建立3D对象(棱锥)的过程。2.1.这一步比较简单,指定棱锥用到的五个点。2.2.建立一个点序列的INDICES 数组,这个数组中和第一步中建立的点1到点5对应.2.3.分别指定五个点对应的颜色信息,包含了顶点的信息,其中 0 到 4 依次每个顶点都是按中的元素是表示将对照RGB的顺序。在以上的步骤中请大家注意一点,就是每一步中的数组的类型。 2.4.指定一个LENGTH数组,它其应的INDICES数组中元素划分为序列时,每个序列的长度。例子中的值是3,就表示INDICES中每三个元素作为一个序列。我们会发现,将INDICES中按照三个一组进行划分,所得到的每组序列刚好是组成一个三角形所需要的三个顶点。 2.5.使用VertexArray 对象来保存顶点位置和颜色信息。VertexArray 中三个参数的意义分别为建组成棱锥的三角面。TriangleStripArray 是 IndexBuffer类的能会保存法线信息(setNormals)。是顶载范例程序和源代码:第一个是创建的对象中元素的个数,第二个是每个元素所包含的子元素数,第三个用来指定每个子元素所占的字节数。 2.6.使用TriangleStripArray对象创子类,它是根据第二个参数将第一个参数也就是INDICES数组中的元素划为序列,组成三角面。在例子中是将INDICES中元素每三个划分为一个序列,刚好组成一个三角面。但是有时可能不是三个划分的,例如对于正方体我们可以定义LENGTH={4,4,4,4,4,4},这时INDICES中元素就会按照四个一组划分,于是这四个元素中的前三个先组成一个三角面,然后后面的两个元素交换位置和第四个元素再组成一个三角面,例如S=(2,0,1,4)就定义了两个三角面:(2,0,1)和(1,0,4)。另外TriangleStripArray中的INDICES数组也可以隐式声明,即TriangleStripArray(int, int[]),此时第一个参数指定了数组中起始元素,后面的元素依次加1递增。例如LENGTH={3,4},那么TriangleStripArray(0, LENGTH)就相当于指定了INDICES={0,1,2,3,4,5,6}。 2.7.利用VertexBuffer保存位置和颜色信息,有时也可能会保存法线信息(setNormals) 2.8.这是最后一步,使用Mesh建立3D对象。这里Mesh的构造函数有三个参数,第一个点的相关信息,例如位置、颜色和法线等,第二个是组成3D对象的三角面或子Mesh对象(并不是指Mesh的子类或Mesh对象)的信息,第三个是外观,Appearance对象,如果在这里指定为null,那么在建立Mesh对象以后,还可以通过setAppearance设定。 // 棱锥用到的顶点. x, y, zshort []POINTS = new short[] {-1, -1, 1, // 点11, -1, 1, // 点21, -1, -1, // 点3-1, -1, -1, // 点40, 1, 0}; // 点5, 顶点// 点序列int []INDICES = new int[] {0, 1, 4, 1, 2, 4, 2, 3, 4, 3, 0, 4, 2, 1, 0, 2, 0, 3};byte []COLORS = new byte[] {127, 0,…

Read More Read More

m3g note 3

m3g note 3

/////////////////////    note 3/////////////////////1.绘制模式—–保留模式、立即模式保留模式是一种基本模式,你可以用来绘制整个世界结点和所有照相机、灯光和网眼。这是最简单的绘制模式,不过你还是需要控制你的世界。立即模式是直接绘制组中的网眼和顶点数据。这个给你更多的控制权,每个绘画都提供一个变换矩阵,在重绘前变换这个对象。在立即模式,你可以绘制一个世界结点,提供一个转化矩阵让绘制方法调用,不过你得放弃世界结点的漂亮的效果,例如照相机、背景等。 2.Graphics3D2.1 绑定获得一个Graphics3D对象是简单的,你只需要调用Graphics3D.getInstance()方法。每个MIDlet只能获得一个Graphics3D对象,这就是为什么只能通过getInstance方法获得该对象。绑定使用bindTarget方法,同时还使用了一些其他方法,让我们看下面的例子://Here is our Graphics3D object Graphics3D g3d = Graphics3D.getInstance();// Bind to an image Image img = Image.createImage("myImage.png"); Graphics g = img.getGraphics(); g3d.bindTarget(g);// Bind to the main Graphics object g3d.bindTarget(getGraphics());// We can also supply rendering hints. Remember those? I talked about them at the beginning. // This is done by using the other form of the bindTarget method. // It takes a Graphics object to begin with, as always, and then it needs a boolean // and…

Read More Read More

m3g note 2

m3g note 2

///////////////   note2 ///////////////1.如何导入m3g文件JSR 184里有个名为Loader的类,并且它正确的装载文件。调用一个简单的方法就可以装载一个M3G文件的所有引用,这个方法叫做Loader.load,有两个不同的参数列表。一个是用String获得一个URL,另一个是获得一个为加工的字节数组。这里是如何使用它的例子:Object3D[] objects = Loader.load("file.M3G");Object3D[] objects2 = Loader.load(byteArray, offset);装载方法总是返回一个Object3D数组,并且有它的一个非常好的原因。最好的是Loader类能比M3G文件装载更多,基本上能保存Object3D的所有子类。然而,你主要使用它来装载M3G文件。 2.一点疑问在设置摄像头旋转时,用到了setOrientationpublic void setOrientation(float angle,                           float ax,                           float ay,                           float az)Sets the orientation component of this Transformable. The orientation is specified such that looking along the rotation axis, the rotation is angle degrees clockwise. Note that the axis does not have to be a unit vector. 它是绕这个旋转轴的面上转的吗?

m3g note1

m3g note1

/////////////////     note1/////////////////1.Grahpics3D1.1 createGraphics3D is the class that takes care of rendering. It is a singleton, and the unique instance can be obtained with the getInstance() method. 1.2 renderTo render a scene, it is necessary to bind the Graphics3D instance to a target object, do the rendering with one of the render methods, and then release the target as follows:// code startGraphics3D g3d = Graphics3D.getInstance();World world=…Graphics g=…boolean bound = false;try {g3d.bindTarget(g);bound = true;g3d.render(world);}finally{if (bound){g3d.releaseTarget();}}//code end 1.3 get the supported qualityThe getProperties()…

Read More Read More

一封nb的信

一封nb的信

  XX,你好。   广州一别已经快半年了,相信你也知道我辞职的消息。我到法国已经有4个多月了,写这封信主要是想告诉你一件事情,我怀孕了,孩子是你的,请不要怀疑这是个玩笑,同时也请你相信这个孩子肯定是你的血脉。不过,我不是要让你负什么责的,你放心,我也会把孩子生下来的,这一切都不是意外,是我的预谋。   我上次找机会来广州,其实最主要的目的就是想找你借种怀孕。你看到这里一定很吃惊,但是我是考虑了很久的。自从我拿到了去法国的签证后,我就一直在想这个问题,你应该记得我对你说过,我不会结婚的,不过我的计划是想要有2个自己的孩子(1个是黄种人的,另外1个应该是混血的),当然,我现在已经有了一个,第一个目标我已经达到了。这个孩子将在法国降生,自然这个孩子的国籍是法国国籍,相信我以后靠这个孩子就能留在法国定居了。假如你以后(等孩子读小学以后)也想移民法国的话,我相信我也能帮你的。另外,我以后会对孩子说你是孩子的父亲,相信以后你们父子(女)会有机会见面的,只是不是现在。我会给他(她)我力所能及所提供的生活,我也会很爱他(她)。   你一定想知道为什么我会选你,那是因为我分析了我所认识的男人,最后比较下来,我觉得你的综合条件最好,为了有个优质的后代,所以我最后选了你。等孩子生下来后,我会给你发E-mail的,也会每年都给你发孩子的照片的。另外,希望你也能每年发你的照片给我。我会和你保持E-mail的联系。等到孩子5岁的时候,我会带他(她)回来见你一次的。   请你原谅我的自私,另外,请不要很激动地去找什么法国驻中国大使馆这一类的事情,没用的,法国的法律和中国的法律是有区别的,我既然已经这么做了,也早就考虑过所有可能会发生的事情,甚至最坏的一切。   请相信我,我并不是一个盲目做事情的人,我也不会亏待自己和孩子的。并请你祝福我,包括祝福我身上的你的血脉。等孩子生下来满月后,我会给你发孩子的照片的。你自己要多保重!   莲。

小i复活!

小i复活!

今天回家,准备摘下ipod,发现其屏幕定格住了,怎么按键都没有变化,但是其他功能都能正常用。这可是小i第一次出现问题,居然就这么严重,心想可能要送医院了,抱着试试看的心态,重启下小i,居然复活了,难道是不死鸟转世?! 附上小i重启方法: 1.首先确认hold键在off的状态 2.如果你的iPod是4代,mini或者更新的,按住Menu和Select键(中间的圆白键)不放,过一会儿,就可以重启啦,更详悉的攻略在apple.com 

强烈推荐

强烈推荐

说法1:看过三十大大的《我和空姐同居的日子》后,发觉自己再也不可能恋爱了,因为那种女人已经绝种了! 所以,如果您不想谈恋爱,或者说不想谈一场普通的恋爱,就看看他的书了吧!(呵呵,三十千万别生气。) 说法2:看过三十大大的《我和空姐同居的日子》后,发觉自己越发想谈恋爱了,那种纯纯的爱才是真正的爱,非常令人向往。 说法3:现在,数百万“空姐迷”“三十迷”苦苦期待将近一年,三十新作《下班抓紧谈恋爱》终于出版。 综上所述,有空去书店买来看看,不管你是想恋爱的还是不想恋爱的。 ps:又要换工作了,没想到这个工作才坚持了2个星期,事事难料啊,不过想到跟人事说要走时,他那惊讶的神情,也值了!

一无所有

一无所有

到最后,我还是一无所有。曾经以为,是你的就是你的。结果呢?我跟来的时候一样。 所以属于的都没有了,看到别人快乐是件快乐的事,但这个时候,唯一快乐的资本是别人。 只能,留下想象的空间。 faint,好想做首现代诗啊!我,疯,了!就,在,今,天。   —————- 当一个人处于崩溃的边缘,他什么都能做得出来,因为他根本就不是人。

J2ME中使用Socket开发联网程序

J2ME中使用Socket开发联网程序

在J2ME中基于UDP协议编程一文中介绍了如何使用Datagram和DatagramConnection来开发应用程序,本文将主要讲述在MIDP2.0中使用ServerSocketConnection和SocketConnection来开发联网应用程序。TCP协议是可以保证传输的质量的,这也是他和UDP的一大区别。由于以上谈到的四个类都属于GCF,他们在程序编写方面也非常相似,通常我们在Server端的某个端口监听,当客户端连接服务器的时候,则可以得到一个SocketConnection的实例。通过两端的SocketConnection则可以实现C/S结构的通信了。   首先看一下,ServerSocketConnection类,它的一个非常重要的方法就是acceptAndOpen()方法,这个方法返回一个SocketConnection实例,从而使得客户端和服务器端可以通过socket通信了。典型的代码如下: // Create the server listening socket for port 1234 ServerSocketConnection scn = (ServerSocketConnection)Connector.open("socket://:1234"); // Wait for a connection.SocketConnection sc = (SocketConnection) scn.acceptAndOpen(); // Set application specific hints on the socket.sc.setSocketOption(DELAY, 0);sc.setSocketOption(LINGER, 0);sc.setSocketOption(KEEPALIVE, 0);sc.setSocketOption(RCVBUF, 128);sc.setSocketOption(SNDBUF, 128); // Get the input stream of the connection.DataInputStream is = sc.openDataInputStream(); // Get the output stream of the connection.DataOutputStream os = sc.openDataOutputStream(); // Read the input data.String result = is.readUTF(); // Echo the data back to the sender.os.writeUTF(result); // Close everything.is.close();os.close();sc.close();scn.close();.. SocketConnection的使用也是非常简单,通过Connector的open方法我们可以得到一个SocketConnection的实例。SocketConnection sc…

Read More Read More

061217

061217

最近好像受了一些电影和书籍的影响,开始产生一点点绝望的感觉。 人总是会去追求一些自己认为的幸福、快乐。人本身就是一种冠以高级动物名义的动物,换言之,人就是一种动物,可是,人活得确不见得有动物快乐。 最后,推荐一本书叫《天使不在线》,讲述了一些网络犯罪的事情,可以看看。 书中有这么一段描写:当你亲眼目睹了你的妻子和另一个男人在一起做爱,而她那激赏亢奋的表现又是你从来见过的时候,你还能什么重来?我想即使重来了,装作一切没有发生过,但是只要上了床我就会想起那一幕。我会想起,一个比我年轻的身体也曾经这样的压在她的身上,令她拥过那长久没有的激动,也曾让她辗转呻吟,高潮不断,我不是个保守的人,但是,一旦想起这些,在看看身边躺着的那个女人,我不敢保证我不会崩溃。 不知道你看了后会怎么想? ps:本人开始觉得这类的作品比较好看:1、作品中往往有令人想不到的双重圈套,例如:某人设了一个圈套,反而被另一个人套在 其中。2、女人背叛男人,而且是那种暗地里勾结最后被男人发现,男人一次次原谅女人。3、主角有超乎寻常的智力。(eg:prison break,死亡笔记)。4、主角懦弱无能,为主角干着急的,恨铁不成钢。