亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用Java制作網(wǎng)頁水面特效

        2014-04-29 12:00:52汪志達(dá)
        計(jì)算機(jī)時(shí)代 2014年10期
        關(guān)鍵詞:程序設(shè)計(jì)網(wǎng)頁圖像

        汪志達(dá)

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

        關(guān)鍵詞: Java; 程序設(shè)計(jì); 網(wǎng)頁; 水面特效; 圖像

        中圖分類號:TP301.6;311.11 文獻(xiàn)標(biāo)志碼: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程序可以方便地進(jìn)行圖像處理,再融合動(dòng)畫技術(shù),可在網(wǎng)頁上制作出各種特殊效果。本文介紹水面特效的制作,將圖像映在波動(dòng)的水中,如圖1所示,運(yùn)行時(shí)水面是運(yùn)動(dòng)的。

        圖1 水面特效

        1 實(shí)現(xiàn)方案

        1.1 總體設(shè)計(jì)

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

        圖2 總體制作過程

        1.2 繪制倒影

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

        圖3 繪制倒影

        圖3中h是緩沖區(qū)高度,i是線號,在程序中可以作為循環(huán)變量。按照上圖的設(shè)計(jì),向下移動(dòng)是正向,開始的移動(dòng)量是正的,但隨著i的不斷增加,移動(dòng)量將逐漸變?yōu)樨?fù)值,表示向上移動(dòng)。

        1.3 繪制動(dòng)畫幀

        本例設(shè)計(jì)12個(gè)動(dòng)畫幀,幀號0~11,存于num,幀數(shù)越多圖像越精細(xì),但動(dòng)畫循環(huán)中的延時(shí)時(shí)間需要相應(yīng)縮短。水波為正弦波,不同的幀相位角angle不同,用如下公式計(jì)算:

        angle=num?2?л/12

        仍然采用逐線移動(dòng)的方法繪制動(dòng)畫幀,動(dòng)畫幀中的圖像線可以理解為是倒影中相應(yīng)圖像線偏離原先位置形成的。假設(shè)向上偏移,偏移量用變量wave存儲,當(dāng)wave為負(fù)時(shí)則表示向下偏移,如圖4所示。

        圖4 繪制動(dòng)畫幀

        2 程序設(shè)計(jì)

        程序整體框架如下:

        import java.awt.*;

        import java.applet.*;

        public class MyJavaApplet extends Applet

        { Image img; //圖像

        Image imgBuff; //圖像緩沖區(qū)

        Graphics ibg; //緩沖區(qū)畫筆

        int w,h; //圖像寬高

        int num=0; //幀號

        double angle; //相位角

        int wave; //偏移量

        public void init()

        { //加載圖像、追蹤、獲取圖像寬高

        //創(chuàng)建緩沖區(qū)及其畫筆

        //在緩沖區(qū)的左半部顯示圖像

        //在緩沖區(qū)的右半部繪制倒影

        }

        public void paint(Graphics g)

        { //計(jì)算當(dāng)前幀的相位角

        //在緩沖區(qū)的左半部繪制動(dòng)畫幀

        //產(chǎn)生下一幀的幀號

        //在Applet窗體上部顯示圖像

        //在Applet窗體下部顯示動(dòng)畫幀

        //休眠50毫秒

        repaint();

        }

        public void update(Graphics g)

        { paint(g);

        }

        }

        由于設(shè)計(jì)在paint方法中完成循環(huán),在paint方法的最后,使用repaint方法再調(diào)用paint。程序使用了update方法,且在其中使用參數(shù)g調(diào)用paint方法,其作用是取消每次循環(huán)的清屏操作,避免動(dòng)畫出現(xiàn)閃爍[5]。

        在init方法的最后,按照設(shè)計(jì)方案,使用循環(huán),用逐線移動(dòng)的方法,在緩沖區(qū)的右半部繪制倒影,代碼[2]為:

        for(int i=0;i

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

        }

        循環(huán)變量i即線號;copyArea方法前4個(gè)參數(shù)指定了一個(gè)區(qū)域的左上角坐標(biāo)(0,i),和寬(w)高(1),即一根圖像線,后2個(gè)參數(shù)說明向右移動(dòng)w和向下移動(dòng)(h-1)-2*i,即移動(dòng)到緩沖區(qū)右半部形成倒影的位置,向下的移動(dòng)量在設(shè)計(jì)方案中已經(jīng)分析過;循環(huán)執(zhí)行結(jié)束后,倒影也繪制完成。

        在paint方法中,繪制動(dòng)畫幀也是在循環(huán)中采用逐線移動(dòng)的方法,代碼如下[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);

        }

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

        3 應(yīng)用要點(diǎn)

        實(shí)際應(yīng)用中,展示水面特效的Applet窗體尺寸是由網(wǎng)頁設(shè)計(jì)規(guī)劃確定的,可通過標(biāo)記傳送,程序用getParameter方法接收[1]。標(biāo)記應(yīng)在標(biāo)記之間,無論什么類型的數(shù)據(jù),都是以字符串的形式傳送的,格式為:

        getParameter方法原型為:

        String getParameter("參數(shù)名")

        返回值是字符串類型的,需要時(shí)可在程序中將其轉(zhuǎn)換為原始類型。

        參考文獻(xiàn):

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

        2013.

        [2] 于波.Java程序設(shè)計(jì)與工程實(shí)踐[M].清華大學(xué)出版社,2013.

        [3] 孫燮華.Java程序設(shè)計(jì)與應(yīng)用開發(fā)[M].機(jī)械工業(yè)出版社,2013.

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

        [5] 王克宏.Java技術(shù)及其應(yīng)用[M].高等教育出版社,2001.

        猜你喜歡
        程序設(shè)計(jì)網(wǎng)頁圖像
        改進(jìn)的LapSRN遙感圖像超分辨重建
        基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
        有趣的圖像詩
        從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
        電子制作(2019年9期)2019-05-30 09:42:04
        基于CSS的網(wǎng)頁導(dǎo)航欄的設(shè)計(jì)
        電子制作(2018年10期)2018-08-04 03:24:38
        基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
        電子制作(2017年2期)2017-05-17 03:54:56
        高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
        網(wǎng)頁制作在英語教學(xué)中的應(yīng)用
        電子測試(2015年18期)2016-01-14 01:22:58
        PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
        10個(gè)必知的網(wǎng)頁設(shè)計(jì)術(shù)語
        蜜桃无码一区二区三区| 亚洲人妻av综合久久| 国产精品女同av在线观看| 国产在线一区二区三区四区| 人妻少妇精品视频三区二区一区 | 免费看黄视频亚洲网站| 给你免费播放的视频| 亚洲日本va中文字幕| 妺妺窝人体色www在线图片 | 国产精品网站91九色| 欧美大片aaaaa免费观看| 影音先锋每日av色资源站| 日本少妇按摩高潮玩弄| 中文字幕一区二区三区四区久久| 日韩一区二区av极品| 无码人妻精品一区二区三区9厂 | 亚洲va欧美va日韩va成人网| 国产精品国产午夜免费看福利| 二区久久国产乱子伦免费精品| 国产精品久久国产三级国| 国产亚洲人成在线观看| 国产肉体xxxx裸体137大胆| 少妇被粗大的猛进69视频| 国产一区二区在线观看我不卡| 一区二区高清视频免费在线观看 | 杨幂国产精品一区二区| 亚洲一区二区三区在线视频| 97一期涩涩97片久久久久久久| 久久精品人人做人人综合| 国产精品丝袜美女在线观看| 天堂影院久久精品国产午夜18禁| 激情亚洲一区国产精品| 午夜毛片不卡免费观看视频| 欧美在线日韩| 少妇久久高潮不断免费视频| 中文字日产幕码三区的做法步| 狼人青草久久网伊人| 欧美成人a在线网站| 亚洲一区二区三区国产精品视频| 日韩少妇人妻中文视频| 成人午夜性a级毛片免费|