小菜樂園

          生活就是一杯茶

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            8 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks

          2007年8月15日 #

               摘要: * 圖像縮放 - 參數(shù)指定目標(biāo)圖縮放比例。
          * @param srcImage 源圖像對(duì)象。
          * @param xscale 圖像 x 軸(寬度)上的的縮放比例。
          * @param yscale 圖像 y 軸(高度)上的的縮放比例。
          * @param hints 重新繪圖使用的 RenderingHints 對(duì)象。
          * @return 縮放后的圖像對(duì)象  閱讀全文
          posted @ 2007-08-18 10:20 小菜 閱讀(1520) | 評(píng)論 (0)編輯 收藏

               摘要:   閱讀全文
          posted @ 2007-08-17 20:19 小菜 閱讀(1615) | 評(píng)論 (0)編輯 收藏

               摘要: JAVA2D在圖像處理方面提供一對(duì)接口:  閱讀全文
          posted @ 2007-08-17 10:58 小菜 閱讀(2045) | 評(píng)論 (0)編輯 收藏

          AWT 提供了一些用戶接口的構(gòu)件,但是它不提供一些類似的純粹的繪制圖形的對(duì)象,例如 Rectangle、Polygon 和 Point 類沒有任何繪制圖形的能力。換句話說它們不具備 draw 方法,僅僅可以設(shè)置和的到它們代表的幾何實(shí)體的信息。

              為了代替那些純粹的、可繪制圖形的對(duì)象,AWT 使用了一種簡單的模式。每個(gè) AWT 構(gòu)件完全來自于它自己的 java.awt.Graphics 對(duì)象。

              java.awt.Graphics 是一個(gè)抽象類,其作用是定義一個(gè)真正的工具,用來接受圖形操作。

          表一:傳遞一個(gè)對(duì) Graphics 的引用的 JDK 方法

          java.awt Canvas paint(Graphics g)
          Component paint(Graphics g)
          Component paintAll(Graphics g)
          Component print(Graphics g)
          Component printAll(Graphics g)
          Component update(Graphics g)
          Container paint(Graphics g)
          Container paintComponents(Graphics g)
          Container print(Graphics g)
          Container printComponents(Graphics g)
          ScrollPane printComponents(Graphics g)
          java.beans Property-Editor paintValue(Graphics g, Rectangle r)
          Property-EditorSupport paintValue(Graphics g, Rectangle r)

          表二:返回 Graphics 引用的 JDK 方法

          java.awt Component getGraphics()
          Image getGraphics()
          PrintJob getGraphics()
          Graphics create()
          Graphics create(intx, int y, int w, int h)

          Graphics 類履行2個(gè)主要的職責(zé):

              · 設(shè)置和獲取圖形參數(shù)。

              · 在輸出設(shè)備中執(zhí)行圖形操作。

          得到構(gòu)件的 Graphics 的引用有2種方法:

              · 重載 表一 中的方法(傳遞 Graphics 的引用)

              · 調(diào)用 表二 中的方法(返回 Graphics 的副本)

          Graphics 對(duì)象的壽命

              除了使用 表二 的方法得到的 Graphics 的副本外,使用 表一 的方法得到的 Graphics 的引用只有在方法的執(zhí)行過程中才有效(例如重載的 paint() 和 update() 等方法)。一旦方法返回,引用將不再有效。

              通過使用 表二 的方法得到的 Graphics 的對(duì)象使用完后需要調(diào)用 Graphics.dispose() 方法處理。

          // 程序片斷
          public void someMethodInAComponent(){
           Graphics g = getGraphics();
           
           if(g != null){
            try{
             // ...
             // ...
            }
            finally{
             g.dispose();
            }
           }
          }

          Graphics 類還提供2個(gè)方法創(chuàng)建 Graphics 對(duì)象:

              · Graphics create() 

                  創(chuàng)建精確的 Graphics 副本。

              · Graphics create(int x, int y, int w, int h)

                  創(chuàng)建一個(gè)副本,但是,變?cè)付ㄒ粋€(gè)平移量 (x, y) 和一個(gè)新的剪貼矩形 (x, y, w, h)。create(int, int, int, int) 返回的 Graphics 的原點(diǎn)被轉(zhuǎn)換成 (x, y) 的坐標(biāo),但是剪貼矩形轉(zhuǎn)換為原剪貼矩形和指定矩形的交集。

          import java.applet.Applet;
          import java.awt.*;
          import java.awt.event.*;

          public class CreateTest extends Applet{
           private Image image;
           
           public void init(){
            image = getImage(getCodeBase(),"lena.jpg");
            try{
             MediaTracker mt = new MediaTracker(this);
             mt.addImage(image,0);
             mt.waitForID(0);
            }
            catch(InterruptedException e){
             e.printStackTrace();
            }
           }
           
           public void paint(Graphics g){
            Graphics copy = g.create(image.getWidth(this),0,image.getWidth(this),image.getHeight(this));
            
            try{
             System.out.println("g: " + g.getClip().toString());
             System.out.println("copy: " + copy.getClip().toString());
             
             g.drawImage(image,0,0,this);
             copy.drawImage(image,0,0,this);
            }
            finally{
             copy.dispose();
            }
           }
          }

          posted @ 2007-08-17 10:08 小菜 閱讀(731) | 評(píng)論 (0)編輯 收藏

               摘要: 筆者在這里將畫線,畫或填充多邊形等理解為"圖形"技術(shù),將圖片的變換,顯示理解為"圖像"技術(shù).

          相對(duì)而言,圖形技術(shù)較簡單,圖像技術(shù)較復(fù)雜.下面筆者從實(shí)用的角度出發(fā),講解幾個(gè)圖像編程問題.首先,我們看下面這個(gè)程序.

          import java.applet.*;

          import java.awt.*;  閱讀全文
          posted @ 2007-08-17 07:48 小菜 閱讀(734) | 評(píng)論 (0)編輯 收藏

          http://nehe.gamedev.net/ 是無意中發(fā)現(xiàn)的一個(gè)公認(rèn)非常棒的OpenGL學(xué)習(xí)網(wǎng)站,而且在國內(nèi)有許多網(wǎng)站上面有中文翻譯版,不過不是每個(gè)網(wǎng)站都可以順利地下載程序文件.這站點(diǎn)上面有針對(duì) OpenGL 的一系列章節(jié),看過之后覺得自己再寫OpenGL的學(xué)習(xí)體會(huì)就有些多余了. 里面每一章節(jié)后面有不同語言實(shí)現(xiàn)的源程序,短小精悍,非常易于針對(duì)性突破知識(shí)點(diǎn).是不可多得的金鑰匙(尤其大部分示例都有LWJGL的實(shí)現(xiàn)).


          在學(xué)習(xí)過程中,發(fā)現(xiàn)其中對(duì)于OpenGL的調(diào)用非常好,但是過于針對(duì)OpenGL的特色,使得其某些時(shí)候忽略了不同語言在調(diào)用 OpenGL時(shí)候的差異,比如在Java程序中把內(nèi)存地址傳遞給OpenGL狀態(tài)機(jī)是如何實(shí)現(xiàn)的? 為什么要用Buffer等,要掌握好OpenGL,除了對(duì)OpenGL了如指掌外,還要玩得轉(zhuǎn)至少一種計(jì)算機(jī)語言,哪怕是VB.

          posted @ 2007-08-16 20:59 小菜 閱讀(2454) | 評(píng)論 (1)編輯 收藏

          OS  WindowsXP SP2
          IDE Eclipse3.2
          LWJGL LWJGL 1.0 beta 2
          J2SE 1.6 beat 2
          Eclipse請(qǐng)到 www.eclipse.org 下載
          LWJGL 主頁 www.lwjgl.org
          下載LWJGL后,將其解壓縮,把其中l(wèi)wjgl-1.0beta2\lwjgl-1.0beta2\native\win32下的DLL文件全部復(fù)制到Java安裝路徑下的jre/bin下面,一生機(jī)器上的絕對(duì)路徑是C:\Program Files\Java\jdk1.6.0\jre\bin. 同理,將LWJGL目錄(lwjgl-1.0beta2\lwjgl-1.0beta2\jar)下的所有JAR庫文件復(fù)制到C:\Program Files\Java\jdk1.6.0\jre\lib\ext下面。(ext目錄是Java環(huán)境的庫擴(kuò)展目錄,這些不用我多說了吧:))
          當(dāng)然,為了所編寫出來的程序可以在其它機(jī)器上運(yùn)行,目標(biāo)機(jī)器上一定要配置好LWJGL才可以喲。
          好的,現(xiàn)在啟動(dòng)Eclipse,新建一個(gè)Java工程,在JRE System Lib里面應(yīng)該就可以看到LWJGL庫文件了。

          上面的方法是我知道的最偷懶的方法了,不用去配置煩人的環(huán)境變量.其實(shí)還有很多在開發(fā)環(huán)境的更正規(guī)的配置方法,可以到LWJGL的官方網(wǎng)站參考.里面有關(guān)于Eclipse,NetBeans,JCreator等流行工作的詳細(xì)配置步驟.

          posted @ 2007-08-16 20:55 小菜 閱讀(488) | 評(píng)論 (0)編輯 收藏

               摘要: 我照著《VRML與Java編程技術(shù)》,寫了這樣的一個(gè)程序,但是沒效果出來

          請(qǐng)高手們指教啊!!!

            閱讀全文
          posted @ 2007-08-15 11:39 小菜 閱讀(974) | 評(píng)論 (1)編輯 收藏

          主站蜘蛛池模板: 宣汉县| 文安县| 长治市| 德州市| 屯留县| 武汉市| 丰镇市| 嘉峪关市| 临泉县| 宜州市| 南江县| 南澳县| 隆德县| 油尖旺区| 新源县| 桃园市| 江源县| 西贡区| 玛多县| 色达县| 丽江市| 巫溪县| 江源县| 会泽县| 鱼台县| 巴彦淖尔市| 宜黄县| 紫云| 临清市| 咸阳市| 建湖县| 丹寨县| 土默特右旗| 布拖县| 清原| 时尚| 兴城市| 苏尼特右旗| 齐河县| 商河县| 宁安市|