利用Java制作网页水面特效.doc

上传人:scccc 文档编号:14028579 上传时间:2022-01-30 格式:DOC 页数:4 大小:23.50KB
返回 下载 相关 举报
利用Java制作网页水面特效.doc_第1页
第1页 / 共4页
利用Java制作网页水面特效.doc_第2页
第2页 / 共4页
利用Java制作网页水面特效.doc_第3页
第3页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《利用Java制作网页水面特效.doc》由会员分享,可在线阅读,更多相关《利用Java制作网页水面特效.doc(4页珍藏版)》请在三一文库上搜索。

1、利用 Java 制作网页水面特效Water special effects on Webpage using JavaWang Zhida( Ningbo Polytechnic ,Ningbo ,Zhejiang 315800,China ): The implementing project of making water special effects on webpage using Java is introduced. The related technique method and programming are discussed in detail , with some a

2、pplied issues. The core technology is casting image on waving water. The waves are regarded as sine curves. The frames phase angle and amplitude are calculated. The amplitude is used as frame vertical deviant to draw each line of the frame. Meanwhile , double buffer technology is utilized to process

3、 the image on buffer area and display it on the window.0 引言使用 Applet 程序可以方便地进行图像处理,再融合动画技 术,可在网页上制作出各种特殊效果。 本文介绍水面特效的制作, 将图像映在波动的水中,如图 1 所示,运行时水面是运动的。图1 水面特效1 实现方案1.1 总体设计采用双缓冲技术, 先在图像缓冲区中处理图像, 完成后再显 示到窗体上。 为此需要设置图像缓冲区, 并将缓冲区逻辑划分为 左、右两部分。总体制作过程为:缓冲区左半部显示图像,右半 部绘制倒影,左半部制作动画帧(覆盖图像),窗体显示图像和 动画帧。如图 2 所示

4、。图2 总体制作过程1.2 绘制倒影 倒影的绘制采用逐线移动的处理方法,如图 3 所示。图3 绘制倒影图 3 中 h 是缓冲区高度, i 是线号,在程序中可以作为循环 变量。按照上图的设计, 向下移动是正向, 开始的移动量是正的, 但随着 i 的不断增加,移动量将逐渐变为负值,表示向上移动。1.3 绘制动画帧本例设计12个动画帧,帧号011,存于num帧数越多图 像越精细, 但动画循环中的延时时间需要相应缩短。 水波为正弦 波,不同的帧相位角 angle 不同,用如下公式计算:angle=num?2?刀 /12仍然采用逐线移动的方法绘制动画帧, 动画帧中的图像线可 以理解为是倒影中相应图像线偏

5、离原先位置形成的。 假设向上偏 移,偏移量用变量 wave 存储,当 wave 为负时则表示向下偏移, 如图 4 所示。图 4 绘制动画帧2 程序设计程序整体框架如下:import java.awt.* ; import java.applet.* ; public class MyJavaApplet extends Applet Image img ; / 图像Image imgBuff ; / 图像缓冲区 Graphics ibg ; / 缓冲区画笔 int w ,h; / 图像宽高 int num=0 ; / 帧号 double angle ; / 相位角 int wave ; / 偏

6、移量 public void init() / 加载图像、追踪、获取图像宽高 / 创建缓冲区及其画笔 / 在缓冲区的左半部显示图像 / 在缓冲区的右半部绘制倒影 public void paint(Graphics g ) / 计算当前帧的相位角 / 在缓冲区的左半部绘制动画帧 / 产生下一帧的帧号/ 在 Applet 窗体上部显示图像/ 在 Applet 窗体下部显示动画帧 / 休眠 50 毫秒 repaint ();public void update ( Graphics g ) paint ( g);由于设计在 paint 方法中完成循环,在 paint 方法的最后, 使用 repaint 方法再调用 paint 。程序使用了 update 方法,且 在其中使用参数g调用paint方法,其作用是取消每次循环的清 屏操作,避免动画出现闪烁 5 。在 init 方法的最后,按照设计方案,使用循环,用逐线移 动的方法,在缓冲区的右半部绘制倒影,代码 2 为:for (int i=0 ;i 标记传送,程序用 getParameter 方法接 收1 。 标记应在和标记之间,无论什么类型的数据,都是以字 符串的形式传送的,格式为:getParameter 方法原型为:String getParameter ( 参数名 )返回值是字符串类型的, 需要时可在程序中将其转换为原始 类型

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1