亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lake.java

?? 實現圖片水波效果
?? JAVA
字號:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   lake.java

import java.applet.Applet;
import java.applet.AppletContext;
import java.awt.*;
import java.awt.image.ImageObserver;
import java.io.PrintStream;
import java.net.MalformedURLException;
import java.net.URL;

public class lake extends Applet
    implements Runnable
{

    private int boatHeight;
    private boolean keepRunning;
    private transient Thread thrLake;
    private static final String PARAM_IMAGE = "image";
    private static final String PARAM_OVERLAY = "overlay";
    private static final String PARAM_TARGET = "target";
    private static final String PARAM_HREF = "hRef";
    private static final String PARAM_ROCKING = "rocking";
    private static final String PARAM_UNDERWATER = "underwater";
    private static final String PARAM_SPEED = "speed";
    private static final String PARAM_HORIZON = "horizon";
    private Image image;
    private Image overlay;
    private MediaTracker overlayTracker;
    private String target;
    private URL hRef;
    private boolean rocking;
    private boolean underwater;
    private int speed;
    private int horizon;
    private int numFrames;
    private transient Graphics gMain;
    private transient Graphics gWave;
    private transient Image imgWave;
    private transient int currImage;
    private transient int widthImage;
    private transient int heightImage;
    private transient int widthOverlay;
    private transient int heightOverlay;
    private transient boolean allLoaded;
    private transient boolean isAnimating;
    private transient int boatPhase;
    private transient int boatPhaseTotal;

    public void start()
    {
        keepRunning = true;
        if(thrLake == null)
        {
            thrLake = new Thread(this);
            thrLake.start();
        }
    }

    public void stop()
    {
        keepRunning = false;
    }

    public void run()
    {
        currImage = 0;
        while(keepRunning) 
            try
            {
                while(!isAnimating) 
                    Thread.sleep(500L);
                if(++currImage == numFrames)
                    currImage = 0;
                if(++boatPhase == boatPhaseTotal)
                    boatPhase = 0;
                displayImage();
                repaint();
                Thread.sleep(30L);
            }
            catch(InterruptedException _ex)
            {
                stop();
            }
    }

    public String getAppletInfo()
    {
        return "Name: lake Version 4.0\r\nAuthor: David Griffiths\r\nis an applet class which takes in an \r\nimage and reflects it in a virtual lake.\r\nLast compiled: 10th October 1999 at 13:17:27  \r\nFor more information about this and other applets\r\ngo to http://www.spigots.com/spigots.htm\r\nCreated with Sun JDK 1.1";
    }

    public Image getImage()
    {
        return image;
    }

    public void setImage(Image image1)
    {
        image = image1;
        widthImage = image.getWidth(this);
        heightImage = image.getHeight(this);
        allLoaded = true;
        createAnimation();
    }

    public void setImageValue(String s)
    {
        setImage(getImage(getDocumentBase(), s));
    }

    public boolean imageUpdate(Image image1, int i, int j, int k, int l, int i1)
    {
        boolean flag = super.imageUpdate(image1, i, j, k, l, i1);
        if(image1 == image)
        {
            int j1 = heightImage;
            if((i & 0x30) != 0)
            {
                widthImage = l;
                heightImage = i1;
            } else
            {
                widthImage = size().width;
                heightImage = (10 * size().height) / 18;
            }
            if(j1 != heightImage)
                createAnimation();
        }
        return flag;
    }

    public Image getOverlay()
    {
        return overlay;
    }

    public void setOverlay(Image image1)
    {
        overlay = image1;
        overlayTracker = new MediaTracker(this);
        overlayTracker.addImage(image1, 0);
    }

    public void setOverlayValue(String s)
    {
        setOverlay(getImage(getDocumentBase(), s));
    }

    private boolean overlayReady()
    {
        if(overlayTracker != null)
            return overlayTracker.statusID(0, true) == 8;
        else
            return false;
    }

    public String getTarget()
    {
        return target;
    }

    public void setTarget(String s)
    {
        target = s;
    }

    public void setTargetValue(String s)
    {
        setTarget(s);
    }

    public URL getHRef()
    {
        return hRef;
    }

    public void setHRef(URL url)
    {
        hRef = url;
    }

    public void setHRefValue(String s)
    {
        setHRef(createURL(s));
    }

    private URL createURL(String s)
    {
        URL url = null;
        if(s != null)
            try
            {
                url = new URL(getDocumentBase(), s);
            }
            catch(MalformedURLException _ex)
            {
                error("Bad URL: " + s);
                url = null;
            }
        return url;
    }

    public boolean isRocking()
    {
        return rocking;
    }

    public void setRocking(boolean flag)
    {
        rocking = flag;
    }

    public void setRockingValue(String s)
    {
        setRocking(s.toUpperCase().equals("TRUE"));
    }

    public void toggleRocking()
    {
        setRocking(!isRocking());
    }

    public boolean isUnderwater()
    {
        return underwater;
    }

    public void setUnderwater(boolean flag)
    {
        underwater = flag;
    }

    public void setUnderwaterValue(String s)
    {
        setUnderwater(s.toUpperCase().equals("TRUE"));
    }

    public void toggleUnderwater()
    {
        setUnderwater(!isUnderwater());
    }

    public int getSpeed()
    {
        return speed;
    }

    public void setSpeed(int i)
    {
        if(i > 100)
            i = 100;
        else
        if(i < 1)
            i = 1;
        speed = i;
        numFrames = 600 / i;
    }

    public void setSpeedValue(String s)
    {
        setSpeed(Integer.parseInt(s));
    }

    public int getHorizon()
    {
        return horizon;
    }

    public void setHorizon(int i)
    {
        if(i > -2)
            horizon = i;
    }

    public void setHorizonValue(String s)
    {
        setHorizon(Integer.parseInt(s));
    }

    public String[][] getParameterInfo()
    {
        String as[][] = {
            {
                "image", "Image", "JPG or GIF file to reflect"
            }, {
                "overlay", "Image", "JPG or GIF file to use as an overlay"
            }, {
                "target", "String", "Target frame"
            }, {
                "hRef", "URL", "URL to link to"
            }, {
                "rocking", "boolean", "TRUE if boat rocking"
            }, {
                "underwater", "boolean", "TRUE if viewer underwater"
            }, {
                "speed", "int", "The animation speed: 1-100"
            }, {
                "horizon", "int", "The horizon level: 0-height of image"
            }
        };
        return as;
    }

    private void loadParams()
    {
        String s = getParameter("horizon");
        if(s != null)
            setHorizonValue(s);
        s = getParameter("image");
        if(s != null)
            setImageValue(s);
        s = getParameter("overlay");
        if(s != null)
            setOverlayValue(s);
        s = getParameter("target");
        s = getParameter("hRef");
        if(s != null)
            setHRefValue(s);
        else
            setHRefValue("http://www.spigots.com/lake.htm");
        s = getParameter("rocking");
        if(s != null)
            setRockingValue(s);
        s = getParameter("underwater");
        if(s != null)
            setUnderwaterValue(s);
        s = getParameter("speed");
        if(s != null)
            setSpeedValue(s);
    }

    public boolean mouseUp(Event event, int i, int j)
    {
        if(hRef != null)
        {
            error(String.valueOf(hRef));
            getAppletContext().showDocument(hRef, target);
        }
        return true;
    }

    public void init()
    {
        repaint();
        System.out.println(getAppletInfo());
        loadParams();
        allLoaded = true;
    }

    public Dimension getPreferredSize()
    {
        return new Dimension(widthImage, (int)((double)heightImage * 1.8D));
    }

    private void error(String s)
    {
        getAppletContext().showStatus(s);
    }

    public void update(Graphics g)
    {
        paint(g);
    }

    public void paint(Graphics g)
    {
        if(imgWave != null)
            g.drawImage(imgWave, 0, boatHeight, this);
    }

    private void displayImage()
    {
        if(isRocking())
            boatHeight = (int)(((double)heightImage * Math.sin((6.2831853071795862D * (double)boatPhase) / (double)boatPhaseTotal)) / 8D) - heightImage / 8;
        else
            boatHeight = 0;
        if(imgWave != null)
        {
            if(isUnderwater())
            {
                if(horizon >= 0)
                {
                    gWave.drawImage(image, 0, 0, this);
                    makeWavesInverseHorizon(gWave, currImage);
                } else
                {
                    gWave.drawImage(image, 0, size().height - heightImage, this);
                    makeWavesInverse(gWave, currImage);
                }
                boatHeight = -boatHeight;
            } else
            {
                gWave.drawImage(image, 0, 0, this);
                if(horizon >= 0)
                    makeWavesHorizon(gWave, currImage);
                else
                    makeWaves(gWave, currImage);
            }
            if(overlay != null && overlayReady())
                gWave.drawImage(overlay, widthImage - overlay.getWidth(this) >> 1, (heightImage - (overlay.getHeight(this) >> 1)) + boatHeight, this);
        }
    }

    private void createAnimation()
    {
        if(widthImage > 0 && heightImage > 0)
            synchronized(this)
            {
                if(horizon >= 0)
                    imgWave = createImage(2 * widthImage, 2 * heightImage);
                else
                    imgWave = createImage(widthImage, 2 * heightImage);
                gWave = imgWave.getGraphics();
                if(horizon >= 0)
                    gWave.drawImage(image, widthImage, 0, this);
            }
        repaint();
    }

    private void makeWaves(Graphics g, int i)
    {
        double d = (6.2831853071795862D * (double)i) / (double)numFrames;
        for(int j = 0; j < heightImage; j++)
        {
            int k = (int)(((double)(heightImage / 14) * ((double)j + 28D) * Math.sin((double)((heightImage / 14) * (heightImage - j)) / (double)(j + 1) + d)) / (double)heightImage);
            if(j - heightImage > k)
                g.copyArea(0, heightImage - j, widthImage, 1, 0, j << 1);
            else
                g.copyArea(0, (heightImage - j) + k, widthImage, 1, 0, (j << 1) - k);
        }

    }

    private void makeWavesHorizon(Graphics g, int i)
    {
        double d = (6.2831853071795862D * (double)i) / (double)numFrames;
        for(int j = horizon; j < heightImage; j++)
        {
            int k = (int)(((double)(heightImage / 14) * ((double)(j - horizon) + 28D) * Math.sin((double)((heightImage / 14) * ((heightImage - j) + horizon)) / (double)((j - horizon) + 1) + d)) / (double)heightImage);
            if(j + k >= heightImage)
                g.copyArea(widthImage, j, widthImage, 1, -widthImage, 0);
            else
                g.copyArea(widthImage, j + k, widthImage, 1, -widthImage, -k);
        }

    }

    private void makeWavesInverse(Graphics g, int i)
    {
        double d = (6.2831853071795862D * (double)i) / (double)numFrames;
        int j = size().height;
        for(int k = 0; k < heightImage; k++)
        {
            int l = (int)(((double)(heightImage / 14) * ((double)k + 28D) * Math.sin((double)((heightImage / 14) * (heightImage - k)) / (double)(k + 1) + d)) / (double)heightImage);
            if(k - heightImage > l)
                g.copyArea(0, (j - heightImage) + k, widthImage, 1, 0, -(k << 1));
            else
                g.copyArea(0, ((j - heightImage) + k) - l, widthImage, 1, 0, l - (k << 1));
        }

    }

    private void makeWavesInverseHorizon(Graphics g, int i)
    {
        double d = (6.2831853071795862D * (double)i) / (double)numFrames;
        size();
        for(int j = horizon; j < heightImage; j++)
        {
            int k = (int)(((double)(heightImage / 14) * ((double)(j - horizon) + 28D) * Math.sin((double)((heightImage / 14) * ((heightImage - j) + horizon)) / (double)((j - horizon) + 1) + d)) / (double)heightImage);
            if(j + k >= heightImage)
                g.copyArea(widthImage, heightImage - j, widthImage, 1, -widthImage, 0);
            else
                g.copyArea(widthImage, (heightImage - j) + k, widthImage, 1, -widthImage, -k);
        }

    }

    public lake()
    {
        keepRunning = true;
        target = "_self";
        rocking = false;
        underwater = false;
        speed = 50;
        horizon = -1;
        numFrames = 12;
        allLoaded = false;
        isAnimating = true;
        boatPhaseTotal = 50;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本一区二区三区| 成人av在线资源网| 丁香六月综合激情| 欧美一级片在线看| 亚洲免费av高清| 国产99一区视频免费| 欧美丰满嫩嫩电影| 最好看的中文字幕久久| 国产一区二区三区免费看| 欧美群妇大交群的观看方式 | 高清国产一区二区| 欧美变态口味重另类| 亚洲不卡在线观看| 在线看不卡av| 亚洲欧美激情插 | 欧美国产精品中文字幕| 欧美96一区二区免费视频| 色激情天天射综合网| 国产精品污www在线观看| 久久成人羞羞网站| 91精品婷婷国产综合久久竹菊| 亚洲精品国产第一综合99久久 | 卡一卡二国产精品| 欧美日韩国产综合一区二区三区| 亚洲四区在线观看| 色吧成人激情小说| 一区二区三区在线免费播放| 色综合久久综合网97色综合 | 国产精品欧美经典| 国产a精品视频| 欧美激情一区三区| 成人午夜视频在线| 最新日韩在线视频| 色系网站成人免费| 亚洲午夜精品一区二区三区他趣| 色综合久久中文字幕| 亚洲精品第1页| 欧美性大战久久久久久久| 午夜精品久久久久影视| 欧美一卡2卡3卡4卡| 激情五月婷婷综合网| 国产亚洲成aⅴ人片在线观看| 国产精品夜夜嗨| 一色屋精品亚洲香蕉网站| 色88888久久久久久影院野外| 一区二区三区不卡视频在线观看| 欧美色图天堂网| 免费久久精品视频| 久久久久久99久久久精品网站| 夫妻av一区二区| 亚洲毛片av在线| 欧美一区二区三区日韩视频| 黄色成人免费在线| 亚洲天堂免费看| 欧美一区二区三区免费大片 | 色播五月激情综合网| 日韩国产精品久久久久久亚洲| 久久久久久久综合色一本| 成年人午夜久久久| 天堂蜜桃91精品| 亚洲国产精品精华液ab| 欧美唯美清纯偷拍| 国产真实乱子伦精品视频| 亚洲欧洲性图库| 欧美高清视频www夜色资源网| 黄页视频在线91| 亚洲自拍偷拍av| 精品国产百合女同互慰| 一本色道久久综合狠狠躁的推荐| 日本视频一区二区三区| 国产精品国产精品国产专区不片| 欧美三区在线观看| 风间由美中文字幕在线看视频国产欧美| 亚洲精品视频一区| 久久精品这里都是精品| 欧美日韩高清一区二区不卡| 福利一区二区在线观看| 蜜桃视频在线一区| 亚洲福利视频三区| 国产精品天干天干在线综合| 日韩欧美一级二级三级久久久| 99久久99久久免费精品蜜臀| 美女一区二区在线观看| 亚洲综合一区在线| 一区精品在线播放| 久久久国产一区二区三区四区小说 | 激情综合五月婷婷| 天堂午夜影视日韩欧美一区二区| 日韩一区欧美一区| 2021国产精品久久精品| 欧美日本精品一区二区三区| 丁香亚洲综合激情啪啪综合| 久久精品国产亚洲一区二区三区| 一区二区三区四区不卡在线| 国产精品日韩成人| 久久久亚洲高清| 日韩欧美国产精品| 91精品麻豆日日躁夜夜躁| 欧美自拍偷拍一区| 91福利国产成人精品照片| 成人va在线观看| 成人中文字幕合集| 国产激情精品久久久第一区二区| 麻豆专区一区二区三区四区五区| 亚洲成人av一区二区三区| 一区二区三区四区乱视频| 亚洲黄色免费网站| 亚洲影视在线播放| 一级日本不卡的影视| 亚洲影院久久精品| 亚洲福利视频一区二区| 亚洲国产精品一区二区www在线 | 在线观看www91| 日本福利一区二区| 欧美午夜在线一二页| 欧美色图免费看| 91麻豆精品国产91久久久资源速度 | 91精品午夜视频| 91精品国产免费| 日韩三级免费观看| 精品国产伦一区二区三区免费| 日韩欧美国产一区二区三区 | 成人黄色小视频在线观看| 国产91丝袜在线播放九色| 成人午夜激情视频| 91麻豆精品秘密| 欧美日韩一区二区三区免费看| 欧美精品丝袜中出| 欧美成人乱码一区二区三区| 久久综合九色欧美综合狠狠| 欧美国产精品久久| 一区二区三区波多野结衣在线观看| 亚洲综合图片区| 麻豆国产精品一区二区三区| 国产精品资源在线观看| 97国产精品videossex| 在线观看国产一区二区| 日韩欧美一区在线| 国产校园另类小说区| 亚洲精品福利视频网站| 免费久久精品视频| 成人18精品视频| 91精品国产乱码久久蜜臀| 久久蜜桃香蕉精品一区二区三区| 中文幕一区二区三区久久蜜桃| 亚洲柠檬福利资源导航| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲成人免费av| 国产在线看一区| 在线视频一区二区三区| 精品美女在线播放| 亚洲综合在线五月| 国产一区二区伦理| 欧美日韩激情一区| 国产精品福利影院| 久久精品久久久精品美女| 91网站最新网址| 久久这里只有精品首页| 一区二区视频免费在线观看| 国产呦萝稀缺另类资源| 欧美手机在线视频| **网站欧美大片在线观看| 久久99精品久久久久久| 欧美性大战久久久久久久| 中文成人av在线| 精品亚洲欧美一区| 欧美日韩精品欧美日韩精品一综合| 久久久亚洲高清| 裸体健美xxxx欧美裸体表演| 日本韩国视频一区二区| 国产精品你懂的在线| 精品一区二区三区久久| 欧美亚男人的天堂| 国产精品国产三级国产三级人妇 | 精品处破学生在线二十三| 亚洲一区二区三区在线看| 丁香啪啪综合成人亚洲小说 | 宅男噜噜噜66一区二区66| 国产精品久久久久久久久动漫| 蜜臀av性久久久久蜜臀aⅴ流畅| 日本韩国欧美三级| 亚洲日本在线看| 99视频热这里只有精品免费| 国产亚洲精品久| 韩国欧美一区二区| 精品国内片67194| 日日夜夜一区二区| 欧美剧在线免费观看网站| 亚洲综合在线五月| 欧美影片第一页| 亚洲综合久久久久| 欧美三级视频在线| 亚洲成人黄色小说| 欧美日韩国产色站一区二区三区| 亚洲伦理在线免费看| 在线观看亚洲a| 天涯成人国产亚洲精品一区av| 欧美男男青年gay1069videost | 亚洲欧美另类小说| 欧美性xxxxxxxx|