<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java究竟怎么玩?

      天地程序已定棋,人間大數待變局

        博客園  :: 首頁  :: 新隨筆  :: 聯系 :: 訂閱 訂閱  :: 管理
      效果圖如下:


      package org.test;

      import java.awt.Color;
      import java.awt.Frame;
      import java.awt.Graphics;
      import java.awt.Image;
      import java.awt.MediaTracker;
      import java.awt.Panel;
      import java.awt.image.BufferedImage;
      import java.awt.image.MemoryImageSource;
      import java.awt.image.PixelGrabber;

      import org.loon.framework.game.helper.ImageHelper;

      /**
       * <p>
       * Title: LoonFramework
       * </p>
       * <p>
       * Description:Java圖形程序水紋倒映效果
       * </p>
       * <p>
       * Copyright: Copyright (c) 2007
       * </p>
       * <p>
       * Company: LoonFramework
       * </p>
       * 
       * 
      @author chenpeng
       * @email:ceponline@yahoo.com.cn
       * 
      @version 0.1
       
      */

      public class ImageWave extends Panel implements Runnable {

          
      /**
           * 
           
      */

          
      private static final long serialVersionUID = 1L;

          
      private Thread thread;

          
      private Image _image;

          
      private MediaTracker _mt;

          
      private int _delay;

          
      private Graphics _bg;

          
      private Image _screen;

          
      private boolean _playing;

          
      private int _pixels[];

          
      private int _mpixels[];

          
      private int _wpixels[];

          
      private final static int _WIDTH = 480;

          
      private final static int _HEIGHT = 604;

          
      private Image _images[];

          
      private int _sleep;

          
      private int _frame;

          
      /**
           * 構造函數,注入背景圖與延遲時間
           * 
           * 
      @param img
           * 
      @param delay
           
      */

          
      public ImageWave(Image img, int delay) {
              _delay 
      = delay;

              init(img, delay);

          }


          
      public void init(Image img, int delay) {
              setBackground(Color.BLACK);
              _image 
      = img;
              _mt 
      = new MediaTracker(this);
              _mt.addImage(_image, 
      0);
              _mt.checkAll(
      true);
              _frame 
      = 10;
              _screen 
      = new BufferedImage(_WIDTH, _HEIGHT, 1);
              _bg 
      = _screen.getGraphics();
              thread 
      = new Thread(this);
              thread.start();
          }


          
      public void run() {
              Thread.currentThread().setPriority(
      1);
              
      long l = System.currentTimeMillis();
              
      while (Thread.currentThread() == thread)
                  
      try {
                      repaint();
                      _sleep
      ++;
                      l 
      += _delay;
                      Thread.sleep(Math.max(
      0L, l - System.currentTimeMillis()));
                  }
       catch (InterruptedException _ex) {
                      
      return;
                  }

          }


          
      /**
           * 繪制圖象
           
      */

          
      public void paint(Graphics g) {

              
      if (!_playing) {
                  
      if (_mt.checkAll()) {
                      _playing 
      = true;
                      _bg.drawImage(_image, 
      00this);
                      _pixels 
      = new int[(_WIDTH * _HEIGHT) / 2];
                      _mpixels 
      = new int[(_WIDTH * _HEIGHT) / 2];
                      _wpixels 
      = new int[((_WIDTH * _HEIGHT) / 2* _frame];
                      PixelGrabber pixelgrabber 
      = new PixelGrabber(_image, 00,
                              _WIDTH, _HEIGHT 
      / 2, _pixels, 0, _WIDTH);
                      
      try {
                          pixelgrabber.grabPixels();
                      }
       catch (InterruptedException _ex) {
                      }

                      blure();
                      _images 
      = new Image[_frame];
                      
      for (int i = 0; i < _frame; i++)
                          _images[i] 
      = createMirrorImage(i);

                  }

              }
       else {
                  
      if (_sleep > _frame - 1)
                      _sleep 
      = 0;
                  _bg.drawImage(_images[_sleep], 
      0, _HEIGHT / 2this);
              }

              g.drawImage(_screen, 
      00this);
          }


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


          
      /**
           * 創建波紋反射圖片
           * 
           * 
      @param i
           * 
      @return
           
      */

          Image createMirrorImage(
      int i) {
              
      int k1 = _HEIGHT / 2;
              
      int j1 = i * _WIDTH * k1;
              
      for (int k = 0; k < k1; k++{
                  
      int l = k * _WIDTH;
                  
      int i1 = k1 - k - 1;
                  i1 
      += (int) ((double) ((k * 5/ k1 + 2* Math
                          .sin((
      25.132741228718345D * (double) i1 * (double) i1)
                                  
      / (double) k1 / (double) k1
                                  
      - (6.2831853071795862D * (double) i)
                                  
      / (double) _frame));
                  
      if (i1 < 0)
                      i1 
      = 0;
                  
      if (i1 > k1 - 1)
                      i1 
      = k1 - 1;
                  i1 
      *= _WIDTH;
                  
      for (int j = 0; j < _WIDTH; j++)
                      _wpixels[j1 
      + j + l] = _mpixels[j + i1];

              }


              Image image 
      = createImage(new MemoryImageSource(_WIDTH, k1, _wpixels,
                      j1, _WIDTH));
              
      return image;
          }


          
      /**
           * 模糊化反射圖片
           * 
           
      */

          
      void blure() {
              
      int l = _HEIGHT / 2;
              
      for (int j = 0; j < l; j++{
                  
      int k = j * _WIDTH;
                  
      for (int i = 0; i < _WIDTH; i++{
                      
      int i1 = _pixels[i + k];
                      
      int j1;
                      
      if (i != _WIDTH - 1)
                          j1 
      = _pixels[i + k + 1];
                      
      else
                          j1 
      = _pixels[(i + k) - 1];
                      
      int k1 = 0;
                      
      if (j != l - 1)
                          k1 
      = _pixels[i + k + _WIDTH];
                      
      else
                          k1 
      = _pixels[(i + k) - _WIDTH];
                      
      int l1 = 0;
                      
      if (j != l - 1 && i != _WIDTH - 1)
                          l1 
      = _pixels[i + k + _WIDTH + 1];
                      
      else
                          l1 
      = _pixels[i + k];
                      
      int i2 = (i1 >> 16 & 0xff+ (j1 >> 16 & 0xff)
                              
      + (k1 >> 16 & 0xff+ (l1 >> 16 & 0xff);
                      
      int j2 = (i1 >> 8 & 0xff+ (j1 >> 8 & 0xff+ (k1 >> 8 & 0xff)
                              
      + (l1 >> 8 & 0xff);
                      
      int k2 = (i1 & 0xff+ (j1 & 0xff+ (k1 & 0xff+ (l1 & 0xff);
                      i2 
      >>= 3;
                      j2 
      = (j2 >> 3+ (j2 >> 4);
                      k2 
      = (k2 >> 3+ (k2 >> 4);
                      _mpixels[i 
      + k] = i1 & 0xff000000 | i2 << 16 | j2 << 8 | k2;
                  }


              }


          }


          
      public static void main(String[] args) {
              Frame frm 
      = new Frame();
              frm.setTitle(
      "Java圖形程序水紋倒映效果(由Loonframework提供)");
              frm.setSize(_WIDTH, _HEIGHT 
      + 20);
              frm.setResizable(
      false);
              frm.add(
      new ImageWave(ImageHelper.loadImage("C:/back.jpg"true), 100));
              frm.setVisible(
      true);
          }


      }

      posted on 2007-10-22 16:54  cping  閱讀(717)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品中文综合第一页| 老司机亚洲精品一区二区| av中文字幕一区二区| 欧美巨大极度另类| 亚洲色av天天天天天天| 新婚少妇无套内谢国语播放| 无码囯产精品一区二区免费| 日韩深夜视频在线观看| 亚洲精品熟女一区二区| 久久精品国产再热青青青| 奇米777四色成人影视| 亚洲一区二区三区久久受| 国产精品久久精品| 国产羞羞的视频一区二区| 午夜一区二区三区视频| japanese边做边乳喷| 久久本道综合久久伊人| 激情四射激情五月综合网| 亚洲熟女精品一区二区| 五月丁香啪啪| 国产99视频精品免费视频76| 青草青草久热精品视频在线观看| 国产福利视频区一区二区| 免费激情网址| 国产老头多毛Gay老年男| 国产精成人品| 国产精品午夜福利片国产| 97视频精品全国免费观看| 成年在线观看免费人视频| 亚洲一区二区三区十八禁| 一本色道婷婷久久欧美| 国内精品免费久久久久电影院97| 道真| 精品尤物TV福利院在线网站| 欧美日韩在线视频| 中文字幕国产日韩精品| 亚洲国产成熟视频在线多多| 国产成人AV大片大片在线播放| 亚洲国产精品第一二三区| 婷婷四虎东京热无码群交双飞视频| 在线免费播放av观看|