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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 0092.htm

?? 關(guān)于java的開發(fā)文檔
?? HTM
字號:
<html>

<head>
<title>新時代軟件教程:操作系統(tǒng) 主頁制作 服務(wù)器 設(shè)計軟件 網(wǎng)絡(luò)技術(shù) 編程語言 文字編輯</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋體}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1  {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
    <p align="center"><big><strong>Java2d</strong></big></p>

<div align="right">---(文/鍾佩珊)</div>

<TABLE width="90%">
  <TBODY>
  <TR>
    <TD class=page><A name=one>一、簡介</A> <BR>
      <P>Java 2D API是JFC (Java Fundation Classes)的一員,加強(qiáng)了傳統(tǒng)AWT( Abstract 
      Windowing Toolkit )的描繪功能。在 JDK1.2中已經(jīng)支援 Java 2D 的使用。透過Java 2D API 
      ,Programmer 可以輕松地描繪出任意的幾何圖形、運(yùn)用不同的填色效果、對圖形做旋轉(zhuǎn)( rotate)、縮放( scale)、扭曲( 
      shear)等。如圖一所示,Programmer 透過2D 
      API所提供的功能,簡單地利用不同類型的線或是填色效果繪出統(tǒng)計圖,以區(qū)分出不同的資料。當(dāng)然, 2D 
      API還有許多增強(qiáng)AWT能力的部分,像是處理影像檔案可以有不同的濾鏡(filter)效果、對於任意的幾何圖形亦能做碰撞偵測(hit 
      detection)、圖形重疊混色計算(composite)等功能。文中將會對這些技術(shù)做概略性地介紹。 </P>
      <TABLE>
        <TBODY>
        <TR>
          <TD><IMG src="images/2d_f1.gif"> </TD></TR>
        <TR>
          <TD>
            <CENTER>圖一、多種2D的圖形表示法 <A 
            href="#1">[1]</A> 
            </CENTER></TD></TR></TBODY></TABLE><A name=two>二、Java 2D API Packages</A> 
      <BR>
      <P>JDK1.2中關(guān)於2D API的Packages如下所述: </P>
      <P><B>2.1 java.awt</B></P>
      <P>java.awt包含了一些新增的2D API 類別(classes)和介面(interfaces )。其中 Graphics2D繼承自 
      java.awt.Graphics 
      ,是描繪2D圖形的物件(object)。如同前版本的JDK所使用的繪圖模式一樣,當(dāng)有物件 要被描繪時,paint或是update 
      method會自動根據(jù)適當(dāng)?shù)?Graphics Context 來做繪圖的工作。所謂的Graphics Context是與 Graphics 
      Object相關(guān)狀態(tài)屬性(state attribute)的集合。在Graphics2D中新增了許多狀態(tài)屬性,像是Stroke、 
      Paint、Clip、 Transform等。</P>
      <P><B>2.2 java.awt.geom</B> </P>
      <P>java.awt.geom 則包含可以勾勒任何形狀的 GeneralPath類別。它可以由許多不同種類的subpath構(gòu)成,像是lines和 
      quadratic curves 等。為了兼顧方便性,此package中更定義了許多基本幾何圖形,包括Arc2D 、CubicCurve2D、 
      Line2D等。這些類別都有兩種型態(tài),分別是Float precision與Double 
      precision。此外,還有一種特別的圖形類別:Area,它支援Constructive Area Geometry( 
      CGA)。CGA是對既有圖形物件做布林運(yùn)算(Boolean Operation)而產(chǎn)生新圖形物件的過程。如圖二所示, Areas支援聯(lián)集( 
      union)、交集( intersection)、差集(subtraction )、Exclusive OR (XOR)等布林運(yùn)算。最後, 
      AffineTransform 類別則提供圖形物件做Scale、Shear 、Rotate等座標(biāo)上的轉(zhuǎn)換。</P>
      <TABLE>
        <TBODY>
        <TR>
          <TD><IMG src="images/2d_f2.gif"> </TD></TR>
        <TR>
          <TD>
            <CENTER>圖二、 Boolean Operation<A 
            href="#2">[2]</A> 
            </CENTER></TD></TR></TBODY></TABLE>
      <P><B>2.3 java.awt.font</B> </P>
      <P>java.awt.font 中定義了 TextLayout類別,負(fù)責(zé)建構(gòu)text shape、執(zhí)行適當(dāng)?shù)?text 
      operations,如碰撞偵測與打光 (highlighting)等,以及決定text的適當(dāng)位置與順序。 </P>
      <P><B>2.4 java.awt.image</B></P>
      <P>Java 2D API支援三種影像模式。包括 producer/consumer (push) model、 immediatemode 
      model和 pipeine(pull) model。Push model 在前版本的JDK中支援。而Pull model 則在即將出現(xiàn)的 Java 
      Advanced Imaging AP中會支援。於此,我們只探討JDK1.2中出現(xiàn)的Immediate mode imaging 
      model。在此model下, Programmer可以透過2D API對image data( BufferedImage or 
      Raster)做濾鏡的效果。在Package java.awt.image中,immediate mode imaging APIs 
      可以被歸為六大類: interfaces、image data classes、 image operation classes、sample 
      model classes、 color model classes和 exceptions。其中 operation classes 即定義了許多 
      filter ,包括了 AffinTransformOp 、BandCombineOp、 ColorConvertOp、 ConvolveOp、 
      LookupOp、 RescaleOp等。透過以上所提之濾鏡,可以做到 geometrically transform、blur、 
      sharpen、enhance contrast、 threshold和color correct images等效果。如圖三所示,source 
      image經(jīng)過filter,產(chǎn)生出新的圖形。</P>
      <TABLE>
        <TBODY>
        <TR>
          <TD><IMG src="images/2d_f3.gif"> </TD></TR>
        <TR>
          <TD>
            <CENTER>圖三、 Image Processing Model <A 
            href="#3">[3]</A> 
            </CENTER></TD></TR></TBODY></TABLE>
      <P><B>2.5 java.awt.color</B></P>
      <P>Package java.awt.color定義了class ColorSpace。此 class提供 
      Programmer轉(zhuǎn)換色盤的method。 </P>
      <P><B>2.6 java.awt.print</B></P>
      <P>Java Printing API提供Programmer 列印AWT和Java 2D graphics(composit ed 
      graphics和 images)的method。并可讓User設(shè)定 print的屬性,如雙面列印等。</P><A 
      name=three>三、Java 2D Programming初步</A> <BR>
      <P> 解了Java 2D API 
      各相關(guān)的package資訊之後,可以進(jìn)一步地實(shí)做一些簡單的Applications來體認(rèn)2D的美妙。在那之前,我們先學(xué)習(xí)一些基本的2D 
      programming codes 。 </P>
      <P><B>3.1基本步驟 </B></P>
      <P>繪圖的第一個步驟是產(chǎn)生 Graphics2D Object 。 接著是設(shè)定你所 要的狀態(tài)屬性。例如你想要對一物件做漸層式的填色,可以設(shè)定屬性 
      Paint為 GradientPaint。最後再呼叫 Graphics2D所提供的redering method 
      ,fill或是draw,完成整個繪圖的程序。以下即是此基本步驟的范例程式碼:</P>
      <P align=center>
      <TABLE width="70%">
        <TBODY>
        <TR>
          <TD class=detail><PRE>
import java.awt.*;

import java.awt.geom.*;

public void paint(Graphics g)
{
  Ellipse2D.Float shape;
  GradientPaint gp;
  // create a Graphics2D

  Graphics2D g2 = (Graphics2D) g ;

  // create a Ellipse2D (x,y,w,h)

  shape = new Ellipse2D.Float (200,200,60,60);

  // create a Cyclic GradientPaint 

  // (x1,y1,color1,x2,y2,color2, boolean cyclic)

  gp = new GradientPaint (180,190,Color.yellow,220,210,Color.red,true);

  g2.setPaint(gp);

  g2.fill(shape);

}

</PRE></TD></TR></TBODY></TABLE></P><PRE></PRE>
      <P><B>3.2 如何畫線</B></P>
      <P>在jdk尚未支援 2D圖形之前, Programmer只可以畫出直的、相同粗細(xì)的線條。現(xiàn)在,我們就教您如何透過2D 
      API繪出不同粗細(xì)的線條及圓滑的曲線。在package java.awt.geom中提供了Line2D、 QuadCurve2D及 
      CubicCurve2D等 classes,讓 Programmer輕松地繪出想要的線條。范例程式碼如下所示:</P>
      <P align=center>
      <TABLE width="70%">
        <TBODY>
        <TR>
          <TD class=detail><PRE>import java.awt.geom.*;
Line2D.Float line;

CubicCurve2D.Float cubic;

// create a Line2D

line = new Line2D.Float(20,390,200,390);

// create a CubicCurve2D,比直線多了兩個控制點(diǎn)

cubic = new CubicCurve2D.Float(70,100,120,50,170,270,220,100);

// 設(shè)定描繪的粗細(xì)

g2. setStroke(new BasicStroke(2.0f));

g2.setColor(Color.blue);

g2.draw(line);

line = new Line2D.Float(30,400,250,400);

// 設(shè)定描繪的粗細(xì)

g2. setStroke(new BasicStroke(5.0f));

g2.draw(line);

</PRE></TD></TR></TBODY></TABLE></P><PRE></PRE>
      <P><B>3.3顯示字串 </B></P>
      <P>透過Java 2D, Programmer可以顯示更細(xì)致的文字。如范例程式碼的效果:顯示出外邊為淡藍(lán)色的字串 " Font Test 
      "。</P>
      <P align=center>
      <TABLE width="70%">
        <TBODY>
        <TR>
          <TD class=detail><PRE>

import java.awt.font.*;

Shape sha;

FontRenderContext frc =g2.getFontRenderContext();

TextLayout tl = new TextLayout("Font Test",new Font("Modern",
                                     Font.BOLD+Font.ITALIC,20),frc);

sha=tl.getOutline(AffineTransform.getTranslateInstance(50,380));

g2.setColor(Color.blue);

g2.setStroke(new BasicStroke(2.0f));

g2.draw(sha);

g2.setColor(Color.white);

g2.fill(sha);

</PRE></TD></TR></TBODY></TABLE></P><PRE></PRE>
      <P><B>3.4圖檔處理 </B></P>
      <P>之前,若希望圖形有濾鏡的效果,必須透過可以處理圖形的繪圖軟體來幫忙。在2D API中則提供了一些簡單的method,使得 
      Programmer可以直接用程式碼來對圖形作濾鏡效果的控制。下面即介紹其中一種效果。范例程式碼如下所示: </P>
      <P align=center>
      <TABLE width="70%">
        <TBODY>
        <TR>
          <TD class=detail><PRE>
float[] elements = {0.0f, -1.0f, 0.0f,-1.0f, 4.f, -1.0f,0.0f, -1.0f, 0.0f};

Image img = Toolkit.getDefaultToolkit().getImage("boat.gif");

int w = img.getWidth(this);
int h = img.getHeight(this);

BufferedImage bi = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);

Graphics2D big = bi.createGraphics();

big.drawImage(img,0,0,this);

BufferedImageOp biop = null;

AffineTransform at = new AffineTransform();

BufferedImage bimg = new BufferedImage(img.getWidth(this),img.getHeight(this),
                       BufferedImage.TYPE_INT_RGB);

Kernel kernel = new Kernel(3,3,elements);

ConvolveOp cop = new ConvolveOp(kernel,ConvolveOp.EDGE_NO_OP,null);

cop.filter(bi,bimg);

biop = newAffineTransformOp(at,AffineTransformOp.TYPE_NEAREST_NEIGHBOR);

g2 = (Graphics2D)this.getGraphics();

g2.drawImage(bimg,biop,0,0);

</PRE></TD></TR></TBODY></TABLE></P><PRE></PRE>
      <P>上面的范例程式碼造成圖四到圖五的變化。 </P>
      <TABLE>
        <TBODY>
        <TR>
          <TD><IMG src="images/2d_f4.gif"> </TD></TR>
        <TR>
          <TD>
            <CENTER>圖四、原始圖</CENTER></TD></TR></TBODY></TABLE>
      <TABLE>
        <TBODY>
        <TR>
          <TD><IMG src="images/2d_f5.gif"> </TD></TR>
        <TR>
          <TD>
            <CENTER>圖五、經(jīng)過filter處理後的圖形</CENTER></TD></TR></TBODY></TABLE><A 
      name=four>四、參考資料</A> 
      <DL>
        <DT>
        <DD><A name=1>[1]</A> Java Tutorial-2D Graphics-,<A 
        href="../../java.sun.com/docs/books/tutorial/2d/index.html">http://java.sun.com/docs/books/tutorial/2d/index.html</A> 

        <DD><A name=2>[2]</A> Java 2D Progrmmer's Guide,Chapter 3-Geometries- <A 
        href="../../java.sun.com/products/jdk/1.2/docs/guide/2d/spec/j2d-geom.fm2.html">http 
        ://java.sun.com/p roducts/jdk/1.2/d ocs/guide/2d/spec /j2d-geom.fm2.htm 
        l</A> 
        <DD><A name=3>[3]</A> [3]Java 2D Programmer;s Guide,Chapter 5-imaging- 
        <A 
        href="../../java.sun.com/products/jdk/1.2/docs/guide/2d/spec/j2d-image.fm2.html">htt 
        p://java.sun.com/ products/jdk/1.2/ docs/guide/2d/spe c/j2d-image.fm2.h 
        tml</A> </DD></DL></TD></TR></TBODY></TABLE>

  </table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品中文字幕在线一区| 777色狠狠一区二区三区| 欧美精品在线观看一区二区| 国产精品无人区| 久久精品国产一区二区三| 91黄色激情网站| 欧美激情在线观看视频免费| 青青草一区二区三区| 在线免费观看日本一区| 国产精品视频观看| 日本不卡一区二区三区| 欧美亚日韩国产aⅴ精品中极品| 国产清纯白嫩初高生在线观看91| 日韩福利电影在线观看| 欧洲视频一区二区| 中文字幕一区二区视频| 国产精品一区二区三区四区| 日韩片之四级片| 午夜激情综合网| 欧美吻胸吃奶大尺度电影 | 欧美性大战xxxxx久久久| 国产亚洲成aⅴ人片在线观看| 奇米影视7777精品一区二区| 欧美美女bb生活片| 亚洲国产wwwccc36天堂| 91福利在线播放| 亚洲蜜桃精久久久久久久| 国产**成人网毛片九色| 国产欧美日韩视频一区二区| 国产自产视频一区二区三区| 欧美一级淫片007| 日韩av一二三| 日韩一区二区中文字幕| 青青草91视频| 日韩欧美国产精品| 激情五月播播久久久精品| 制服丝袜亚洲精品中文字幕| 一区二区三区在线观看国产| 91在线无精精品入口| 中文字幕一区二区三区在线播放 | 亚洲成人动漫一区| 欧美在线免费视屏| 亚洲一区二区中文在线| 欧美午夜精品久久久| 午夜精品一区二区三区免费视频| 欧美日韩在线免费视频| 午夜伦理一区二区| 91精品国产色综合久久ai换脸| 肉肉av福利一精品导航| 欧美日韩国产高清一区二区| 午夜婷婷国产麻豆精品| 在线不卡免费av| 久久精品72免费观看| 久久美女高清视频| 播五月开心婷婷综合| 亚洲欧美成aⅴ人在线观看 | 极品少妇一区二区三区精品视频 | 色网站国产精品| 亚洲小说欧美激情另类| 91精品国产综合久久久久久久久久| 免费观看91视频大全| 亚洲精品一区二区三区福利| 国产精品一卡二| 亚洲人午夜精品天堂一二香蕉| 日本道色综合久久| 五月婷婷久久丁香| 欧美不卡视频一区| av一区二区三区四区| 亚洲自拍偷拍图区| 日韩欧美的一区| 从欧美一区二区三区| 亚洲精选一二三| 欧美精品 国产精品| 精品一区二区免费| 中文字幕一区二区不卡| 欧美探花视频资源| 久久国产成人午夜av影院| 国产精品日产欧美久久久久| 91国产精品成人| 黄色资源网久久资源365| 国产精品初高中害羞小美女文| 欧美日韩精品一区视频| 激情五月婷婷综合网| 亚洲少妇屁股交4| 中文字幕第一区二区| 欧美肥大bbwbbw高潮| 久久久美女毛片| 国产亚洲精品aa午夜观看| 久久人人97超碰com| 精品欧美一区二区久久| 久久综合久久鬼色| 久久精品一区四区| 国产日韩欧美精品一区| 日本欧美在线看| 一区二区在线观看视频在线观看| 亚洲一区二区三区不卡国产欧美| 久久久激情视频| 色一情一伦一子一伦一区| 捆绑调教美女网站视频一区| 中文字幕日韩一区| 日韩视频中午一区| 91丨porny丨户外露出| 美女一区二区视频| 伊人夜夜躁av伊人久久| 精品福利一区二区三区免费视频| 91麻豆精品视频| 国产一区视频导航| 亚洲综合丁香婷婷六月香| 国产日韩欧美精品在线| 欧美一区二区私人影院日本| 99麻豆久久久国产精品免费| 久久99热国产| 偷拍一区二区三区四区| 日韩一区在线免费观看| 精品国产一区a| 欧美日韩激情一区| 91在线视频网址| 国产老妇另类xxxxx| 日本中文字幕不卡| 亚洲综合在线第一页| 中文字幕制服丝袜一区二区三区 | 欧美性感一区二区三区| 国产91对白在线观看九色| 毛片av中文字幕一区二区| 亚洲成av人片| 一区二区三区视频在线看| 中文一区二区在线观看| 精品国产凹凸成av人网站| 91麻豆精品91久久久久同性| 在线看一区二区| 91丨porny丨在线| 99天天综合性| 成人综合在线网站| 国产大陆a不卡| 激情欧美日韩一区二区| 三级一区在线视频先锋| 亚洲码国产岛国毛片在线| 免费一级欧美片在线观看| 精品成人免费观看| 日韩精品五月天| 欧美日韩综合一区| 亚洲高清在线精品| 在线免费精品视频| 亚洲免费观看高清完整版在线观看| 久久er99精品| 久久九九影视网| 国产一区二区不卡| 国产精品国产三级国产普通话蜜臀| 99久久精品免费| 亚洲国产精品久久久久秋霞影院 | 波多野洁衣一区| 成人午夜视频福利| 成人小视频免费观看| 粉嫩欧美一区二区三区高清影视| 国产在线播放一区二区三区| 九色综合狠狠综合久久| 国产在线一区二区综合免费视频| 另类专区欧美蜜桃臀第一页| 久久国产精品露脸对白| 精品一区二区三区免费观看 | 国产精品黄色在线观看| 国产精品久久久久四虎| 国产精品久久久久久久久动漫| 中文字幕一区二区三区乱码在线 | 亚洲欧美一区二区三区久本道91 | 日韩欧美一级片| 精品福利一区二区三区免费视频| 精品裸体舞一区二区三区| 精品处破学生在线二十三| 2017欧美狠狠色| 国产日韩欧美在线一区| 中文字幕中文字幕一区二区| 亚洲精品欧美综合四区| 亚洲bt欧美bt精品777| 蜜桃av一区二区| 国产福利精品一区| 99精品视频一区二区| 欧美视频在线一区| 欧美一卡2卡3卡4卡| 中文字幕一区二区三区在线播放| 亚洲欧洲99久久| 亚洲国产乱码最新视频| 日韩高清在线一区| 国产乱人伦偷精品视频免下载 | 琪琪一区二区三区| 国产麻豆成人传媒免费观看| www.亚洲人| 欧美麻豆精品久久久久久| 欧美zozo另类异族| 日韩天堂在线观看| 精品视频1区2区3区| 一本大道久久a久久综合| 91九色最新地址| 国产精品一卡二卡| 免费看黄色91| 一区二区欧美国产| 一区二区三区欧美久久| 久久久电影一区二区三区| 欧美一级精品大片| 777久久久精品|