999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用Java制作網頁水面特效

2014-04-29 12:00:52汪志達
計算機時代 2014年10期

汪志達

摘 要: 介紹了用Java在網頁上制作水面特效的總體實現方案、主要技術方法和程序設計,以及應用方面幾個問題的解決。其技術核心是將圖像映在波動的水中。將水波視作正弦波,計算幀相位角和振幅,以振幅為動畫幀偏移量,橫向逐線繪制;同時采用雙緩沖技術,先在圖像緩沖區中處理圖像,完成后再顯示到窗體上。

關鍵詞: Java; 程序設計; 網頁; 水面特效; 圖像

中圖分類號:TP301.6;311.11 文獻標志碼:A 文章編號:1006-8228(2014)10-54-02

Water special effects on Webpage using Java

Wang Zhida

(Ningbo Polytechnic, Ningbo, Zhejiang 315800, China)

Abstract: 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 applied issues. The core technology is casting image on waving water. The waves are regarded as sine curves. The frame's 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 the image on buffer area and display it on the window.

Key words: Java; programing; webpage; water special effects; image

0 引言

使用Applet程序可以方便地進行圖像處理,再融合動畫技術,可在網頁上制作出各種特殊效果。本文介紹水面特效的制作,將圖像映在波動的水中,如圖1所示,運行時水面是運動的。

圖1 水面特效

1 實現方案

1.1 總體設計

采用雙緩沖技術,先在圖像緩沖區中處理圖像,完成后再顯示到窗體上。為此需要設置圖像緩沖區,并將緩沖區邏輯劃分為左、右兩部分。總體制作過程為:緩沖區左半部顯示圖像,右半部繪制倒影,左半部制作動畫幀(覆蓋圖像),窗體顯示圖像和動畫幀。如圖2所示。

圖2 總體制作過程

1.2 繪制倒影

倒影的繪制采用逐線移動的處理方法,如圖3所示。

圖3 繪制倒影

圖3中h是緩沖區高度,i是線號,在程序中可以作為循環變量。按照上圖的設計,向下移動是正向,開始的移動量是正的,但隨著i的不斷增加,移動量將逐漸變為負值,表示向上移動。

1.3 繪制動畫幀

本例設計12個動畫幀,幀號0~11,存于num,幀數越多圖像越精細,但動畫循環中的延時時間需要相應縮短。水波為正弦波,不同的幀相位角angle不同,用如下公式計算:

angle=num?2?л/12

仍然采用逐線移動的方法繪制動畫幀,動畫幀中的圖像線可以理解為是倒影中相應圖像線偏離原先位置形成的。假設向上偏移,偏移量用變量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; //偏移量

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

{ ibg.copyArea(0,i,w,1,w,(h-1)-2*i);

}

循環變量i即線號;copyArea方法前4個參數指定了一個區域的左上角坐標(0,i),和寬(w)高(1),即一根圖像線,后2個參數說明向右移動w和向下移動(h-1)-2*i,即移動到緩沖區右半部形成倒影的位置,向下的移動量在設計方案中已經分析過;循環執行結束后,倒影也繪制完成。

在paint方法中,繪制動畫幀也是在循環中采用逐線移動的方法,代碼如下[3]:

for(int i=0;i

{ wave=(int)((i/12.0+1)*Math.sin(h/12.0*(h-i)/(i+1)+angle));

ibg.copyArea(w,i+wave,w,1,-w,-wave);

}

循環變量i即線號,循環中先計算倒影圖像中相應的圖像線偏離原先位置的偏移量wave,然后使用copyArea方法移動,偏移量wave在設計方案中已經分析過。copyArea方法的前4個參數指定了一個區域的左上角坐標(w,i+wave),和寬(w)高(1),即顯示在緩沖區右半部的倒影圖像上水平方向的一根圖像線;后2個參數說明向左移動w和向上移動wave,即移動到緩沖區左半部形成動畫幀的位置。循環執行結束后,一個動畫幀也就繪制完成[4]。

3 應用要點

實際應用中,展示水面特效的Applet窗體尺寸是由網頁設計規劃確定的,可通過標記傳送,程序用getParameter方法接收[1]。標記應在標記之間,無論什么類型的數據,都是以字符串的形式傳送的,格式為:

getParameter方法原型為:

String getParameter("參數名")

返回值是字符串類型的,需要時可在程序中將其轉換為原始類型。

參考文獻:

[1] 陳杰華.JavaScript Web開發技術(第2版)[M].清華大學出版社,

2013.

[2] 于波.Java程序設計與工程實踐[M].清華大學出版社,2013.

[3] 孫燮華.Java程序設計與應用開發[M].機械工業出版社,2013.

[4] 吳其慶.Java編程思想與實踐[M].冶金工業出版社,2002.

[5] 王克宏.Java技術及其應用[M].高等教育出版社,2001.

主站蜘蛛池模板: 午夜视频日本| 午夜日b视频| 亚洲熟妇AV日韩熟妇在线| 欧美va亚洲va香蕉在线| 精品人妻无码区在线视频| 精品自拍视频在线观看| 99精品国产自在现线观看| 91黄视频在线观看| 日韩精品成人在线| 麻豆精品在线播放| 国产激情在线视频| 天天躁日日躁狠狠躁中文字幕| 福利国产微拍广场一区视频在线| 午夜国产精品视频黄| 狠狠久久综合伊人不卡| 亚洲精品国产精品乱码不卞| 国产成人无码AV在线播放动漫| 99热这里只有成人精品国产| 91网在线| 91免费观看视频| 青青草原国产| 亚洲欧洲一区二区三区| 国产嫖妓91东北老熟女久久一| 一级成人欧美一区在线观看| 国产美女一级毛片| 亚洲一区毛片| 国产91蝌蚪窝| 色成人综合| 人妻一区二区三区无码精品一区| 丁香五月亚洲综合在线| 色天堂无毒不卡| 幺女国产一级毛片| 人妻21p大胆| 性视频久久| 97一区二区在线播放| 国产91丝袜在线观看| 欧美不卡视频一区发布| 美美女高清毛片视频免费观看| 在线视频一区二区三区不卡| 制服无码网站| 欧美精品影院| 日本欧美一二三区色视频| 色哟哟色院91精品网站| 久久国产高清视频| 欧美第一页在线| 亚洲AV无码久久精品色欲| 久久伊人色| 国产亚洲视频免费播放| 91成人在线观看视频| aaa国产一级毛片| 欧类av怡春院| 国产免费久久精品99re丫丫一| AV无码一区二区三区四区| 国产精品入口麻豆| 欧美日韩国产精品综合| 久热中文字幕在线观看| 国产精品手机在线播放| 国产欧美亚洲精品第3页在线| 992tv国产人成在线观看| 欧美亚洲国产一区| 2020国产免费久久精品99| 亚洲精品无码人妻无码| 女人18毛片一级毛片在线| 亚洲成A人V欧美综合| 色国产视频| 欧美日韩免费观看| 国产成人亚洲无吗淙合青草| 国产一区二区三区精品久久呦| 91娇喘视频| 婷婷六月天激情| 91黄视频在线观看| 久久黄色毛片| www亚洲精品| 久久久久国色AV免费观看性色| 国产尤物jk自慰制服喷水| 高清无码一本到东京热| 亚洲天堂网2014| 亚洲美女一区| 欧美天堂在线| 国产浮力第一页永久地址| 亚洲日韩AV无码精品| 好吊色妇女免费视频免费|