发布一篇基于Java的动画编程基本(二)
windows系统样,他们做了什么事或者留了一些后门程序,谁都不知道,二,java开发是跨平台,任何系统上都可以运行,对于保密型系统和大型系统开发这是必要的画出每帧:
剩下的就是将每帧图像绘出。在上例中挪用了applet的repaint()来绘出每帧图像。
publicvoidpaint(Graphicsg){
g.setColor(Color.black);
g.drawString("Frame"+frame,0,30);
}
天生图形:
如今我们来画一些略微坚苦的工具。下例画了一个正弦曲线的组合,关于每个x,画一条短的垂直线,一切这些线构成了一个图形,而且每帧变更。
但不幸有些明灭,在今后我们将注释为何闪和如何制止。
publicvoidpaint(Graphicsg){
Dimensiond=size();
inth=d.height/2;
for(intx=0;x<d.width;x++){
inty1=(int)((1.0+Math.sin((x-frame)*0.05))*h);
inty2=(int)((1.0+math.sin((x+frame)*0.05))*h);
g.DrawLine(x,y1,x,y2);
}
}
制止闪灼:
上例中的闪灼有两个缘故原由:绘制每帧消费的工夫太长(由于重绘时请求的盘算量年夜),二是在每次挪用pait()前全部背景被扫除,当在举行下一帧的盘算时,用户看到的是背景。
扫除背景和绘制图形间的长久工夫被用户瞥见,就是闪灼。在有些平台如PC机上闪灼比在XWindow上分明,这是由于XWindow的图像被缓存过,使得闪灼的工夫对照短。
有两种举措能够分明地削弱闪灼:重载update()或利用双缓冲。
重载update()?
当AWT吸收到一个applet的重绘哀求时,它就挪用applet的update()。
缺省地,update()扫除applet的背景,然后挪用paint()。重载update(),将之前在paint()中的画图代码包括在update()中,从而制止每次重绘时将全部地区扫除。
既然背景不在主动扫除,我们必要本人在update()中完成。我们在绘制新的线之前单独将竖线擦除,完整打消了闪灼。
publicvoidpaint(Graphicsg){
update(g);
}
publicvoidupdate(Graphicsg){
Colorbg=getBackground();
Dimensiond=size();
inth=d.height/2;
for(intx=0;x<d.width;x++){
inty1=(int)((1.0+Math.sin((x-frame)*0.05))*h);
inty2=(int)((1.0+Math.sin((x+frame)*0.05))*h);
if(y1>y2){
intt=y1;
y1=y2;
y2=t;
}
g.setColor(bg);
g.drawLine(x,0,x,y1);
g.drawLine(x,y2,x,d.height);
g.setColor(Color.black);
g.drawLine(x,y1,x,y2);
}
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net网页编程和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点 Java是一种计算机编程语言,拥有跨平台、面向对java 是一种突破用户端机器环境和CPU Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。
页:
[1]