仓酷云

标题: JAVA网页设计J2ME 3D手艺简介 [打印本页]

作者: 萌萌妈妈    时间: 2015-1-18 11:35
标题: JAVA网页设计J2ME 3D手艺简介
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践!3D手艺对我们来讲已十分熟习了,最经常使用的3DAPI有OpenGL和Microsoft的Direct3D,在桌面游戏中早已普遍使用。关于J2ME程序而言,Mobile3DGraphicsAPI(JSR184)的呈现,使得为手机使用程序增加3D功效成为大概。

JSR184尺度(M3G:Mobile3DGraphics)为Java挪动使用程序界说了一个简便的3DAPI接口,J2ME程序能够十分便利地利用M3G来完成3D使用好比游戏等等。M3G被计划为十分轻量级的,全部API的完全完成不凌驾150kb。

M3G是J2ME的一个可选包,以OpenGL为基本的精简版,一共有30个类,运转在CLDC1.1/CLDC2.0上(必需撑持浮点运算),能够在MIDP1.0和MIDP2.0中利用。今朝,撑持M3G的手机有Nokia6230/3650/7650/6600、SiemensS65/CX65/S55/M55、Sony-EricssonK700i/P800/P900、Moto220/T720等。M3G只是一个Java接口,详细的底层3D引擎一样平常由C代码完成,好比很多手机厂商的3D引擎接纳的即是SuperScape公司的Swerve引擎,这是一个专门为挪动设备计划的高功能3D引擎。

相似于Microsoft的D3D,M3G撑持两种3D形式:当即形式(immediatemode)和保存形式(retainedmode)。在当即形式下,开辟者必需手动衬着每帧,从而取得较快的速率,但代码较烦琐;在保存形式下,开辟者只需设置好关头帧,剩下的动画由M3G完成,代码较复杂,但速率较慢。M3G也同意夹杂利用这两种形式。

3D模子能够在程序中创立,可是十分烦琐。因而,M3G供应一个Loader类,同意间接从一个单一的.m3g文件中读进全体3D场景。m3g文件能够经由过程3DStudioMax之类的软件创立。

假如熟习OpenGL,那末M3G长短常简单了解的。在M3G中,Graphics3D是3D衬着的屏幕接口,World代表全部3D场景,包含Camera(用于设置察看者视角)、Light(灯光)、Background(背景)和树型布局的恣意数目的3D物体。3D对象在盘算机顶用点(Point,Pixel)、线(Line,Polyline,Spline)、面(Mesh)来形貌,详细存储和运算(如扭转、投影)都是矩阵运算和变更。

SUN的WTK2.2已内置了M3G的完成包,假如安装了WTK2.2,就能够在摹拟器上运转3DMIDP程序。能够参考WTK2.2的示例demo3d。

上面是一个最复杂的M3G程序,来自Sony-Ericsson的示例代码,它创立一个扭转的金字塔,能够从此处下载完全代码并在WTK2.2中运转。

起首,我们要取得独一的Graphics3D实例,用于衬着3D场景。Graphics3D是一个Singleton完成,能够在任何中央取得:

g3d=Graphics3D.getInstance();

然后,在Canvas中衬着:

publicclassMyCanvasextendsCanvas
{
publicvoidpaint(Graphicsg){
try{
g3d.bindTarget(g);
...updatethescene...
...renderthescene...
}finally{
g3d.releaseTarget();
}
}

接上去创立一个World并设置Camera:

world=newWorld();
camera=newCamera();
world.addChild(camera);
//Thewidthandheightofthecanvas.
floatw=getWidth();
floath=getHeight();
//Constructsaperspectiveprojectionmatrixandsetsthatasthecurrentprojectionmatrix.
camera.setPerspective(60.0f,w/h,0.1f,50f);
world.setActiveCamera(camera);

接着,在createPyramid()办法中创立一个Mesh,代表金字塔,并增加到World中:

privateMeshpyramidMesh;//thepyramidinthescene

pyramidMesh=createPyramid();//createourpyramid.
pyramidMesh.setTranslation(0.0f,0.0f,-3.0f);//movethepyramid3unitsintothescreen.
world.addChild(pyramidMesh);//addthepyramidtotheworld

最初,在一个线程中让金字塔绕Y轴扭转起来:

publicvoidrun(){
Graphicsg=getGraphics();
while(true){
//rotatethepyramid1degreearoundtheY-axis.
pyramidMesh.postRotate(3.0f,0.0f,1.0f,0.0f);
draw3D(g);
flushGraphics();
}
}


进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。
作者: 萌萌妈妈    时间: 2015-1-21 10:41
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 深爱那片海    时间: 2015-1-30 15:39
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者: 兰色精灵    时间: 2015-2-6 13:50
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者: 爱飞    时间: 2015-2-9 00:15
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者: 金色的骷髅    时间: 2015-2-26 14:47
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 简单生活    时间: 2015-2-28 19:55
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 不帅    时间: 2015-3-10 07:48
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者: admin    时间: 2015-3-17 05:10
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 小魔女    时间: 2015-3-20 20:41
Java 编程语言的风格十分接近C、C++语言。
作者: 若相依    时间: 2015-3-21 22:17
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: 山那边是海    时间: 2015-3-22 23:00
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者: 第二个灵魂    时间: 2015-4-1 15:38
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者: 蒙在股里    时间: 2015-4-7 14:26
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者: 若天明    时间: 2015-4-21 22:27
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 海妖    时间: 2015-4-23 14:18
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 变相怪杰    时间: 2015-4-25 17:21
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者: 仓酷云    时间: 2015-6-9 01:57
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 小女巫    时间: 2015-6-11 02:52
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者: 精灵巫婆    时间: 2015-6-16 04:14
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 再见西城    时间: 2015-7-9 08:40
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2