和春技術學院資訊管理系 九十三學年度第一學期 物件導向程式語言 第八章 A W T 的2D繪圖套件 教學投影片 課程網頁 講師:毛立仁

Slides:



Advertisements
Similar presentations
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
Advertisements

第一單元 建立java 程式.
繪 圖 繪圖的基本觀念 繪圖相關類別 繪圖屬性與方法 16-4 實例研究.
四資二甲 第三週作業 物件導向程式設計.
多媒體.
Java Applet的运行原理 在网页向Java Applet传值 在Java Applet中播放声音 在Java Applet中使用组件
第14章 图形与图像 14.1 绘制文本 14.2 绘制基本图形 14.3 建立字体 14.4 清除 14.5 Java 2D
類別圖 方塊 (bricks) 背景 (bg) 技能 (skill) 位置 圖片 產生 移動 掉落 位置 圖片 儲存 消除 畫出 規則 效果
第12章 繪圖與多媒體 12-1 繪圖的基礎 12-2 Graphics類別的色彩、文字與繪圖 12-3 圖片的載入與顯示
2015/Spring 跨平台行動程式進階應用 王派洲老師
Canvas繪圖 Canvas簡介 2D繪圖工具 移動、選轉、縮放.
顏色與背景CSS樣式.
PowerPoint圖形總合.
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
Java簡介.
Visual C++ introduction
Ch07 Java Applets 物件導向系統實務.
第 12 章 聲色大全 動畫&繪圖.
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
C語言簡介 日期 : 2018/12/2.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
CSS樣式 靜宜大學 資管系 楊子青.
R教學 安裝RStudio 羅琪老師.
影格速率與時間軸刻度比例 接著我們再來看看時間軸面板上其它的功能。在時間軸面板下方會顯示目前動畫所設定的影格速率 (Frame Rate ) 等資訊:
辅导课程十三.
六頂 思考 帽 SIX THINKING HATS 組員:李冠興 李啟銘 粘婉菁.
Visual Basic 物件導向程式設計簡介.
PROGRAM 6 Earth E. Angel.
Java 程式設計 講師:FrankLin.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
資訊學科中心研習 JAVA程式設計專題 臺北市立大理高級中學 黃世隆 2019/2/23.
第一單元 建立java 程式.
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
圖片格式簡介 張啟中.
網路程式設計期末project B 張芸菱.
《JAVA程序设计》 语音答疑 辅导老师:高旻.
第 19 章 XML記憶體執行模式.
PowerPoint 2019/4/9.
HTML – 超連結與圖片 資訊教育.
JAVA 程式設計 資訊管理系 - 網路組.
Java變數 2014/6/24.
Java程序设计 第13章 图形.
仁濟醫院董之英紀念中學 一九九九年三月八日
教學媒體作業 歷史系99級 楊琇媚. 教學媒體作業 歷史系99級 楊琇媚.
挑戰C++程式語言 ──第8章 進一步談字元與字串
GridView.
GridView操作 (II).
第二章 Java语法基础.
以四元樹為基礎抽取圖片物件特徵 之 影像檢索
CSS樣式 靜宜大學 資管系 楊子青.
Review 1~3.
P3M1 PTH/SMT电阻电位器的参数识别与简易测试
Dreamweaver 進階網頁製作 B 許天彰.
第二章 Java基本语法 讲师:复凡.
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
坐標 →配合課本 P49~56 重點 在坐標平面上,以 ( m , n ) 表示 P 點的坐標,記為 P ( m , n ),m 為 P 點的 x 坐標,n 為 P 點的 y 坐標。 16.
Java语言程序设计 清华大学出版社 第6章 java图形与图像处理.
第一章 直角坐標系 1-3 函數及其圖形.
小畫家教學 電子版儲存於 學校網頁/學科資訊/電腦科
變數、資料型態、運算子.
第2章 Java语言基础.
在直角坐標平面上兩點之間 的距離及平面圖形的面積
多國語系 建國科技大學 資管系 饒瑞佶.
基本資料型態 變數與常數 運算子 基本的資料處理 授課:ANT 日期:2014/03/03.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Array(陣列) Anny
第一章 直角坐標系 1-2 距離公式、分點坐標.
变量定位图形 Java中数据的类型分为四种:基本数据类型、数组类型、类类型以及接口类型。任何常量和变量都一定是上述四种数据类型中的一种。简单数据类型的实例化有两种:变量和常量。 变量名和常量名必须是Java语言中合法的标识符。 常量是在程序运行期间值不改变的量。 变量是在程序运行期间值可通过赋值改变的量,
InputStreamReader Console Scanner
Presentation transcript:

和春技術學院資訊管理系 九十三學年度第一學期 物件導向程式語言 第八章 A W T 的2D繪圖套件 教學投影片 課程網頁 講師:毛立仁

本章重點 8-1 認識Graphics類別繪圖簡介 8-2 動畫的原理與製作

8-1 認識Graphics類別繪圖簡介 Graphics類別是所有繪圖或字型的基礎 類別,具備有繪圖方法、設定字型、選 擇顏色及影像等功能。

座標軸系統 視窗的座標系統是以左上角為原點(0,0), X座標是由左往右為正向,Y座標則是以 上往下為正向。

Java 繪圖座標軸系統

滑鼠在這裡 滑鼠在這裡

繪出線、面與幾何圖形 程式CH08_01.java, CH08_02.java 方法名稱 說明 abstract void drawLine(int x1座標, int y1座標, int x2座標, int y2座標) 給兩點座標(x1,y1), (x2,y2)。 abstract void draw Arc(int x座標, int y座標, int寬, int長, int起始角度, int結束角度) 給(x,y)座標、寬長、起始角度和結束角度。 abstract void drawRect(int x座標, int y座標, int寬, int長) 給(x,y)座標、寬長。 abstract void drawOval(int x座標, int y座標, int寬, int長) abstract void drawPolygon(int[] x座標陣列, int[] y座標陣列, int頂點數): 設定要畫的圖形為幾邊形及各頂點座標。

繪出字串功能 程式CH08_03.java 名稱 說明 ascender 一行字串繪製最高的位置 descender 一行字串繪製最低的位置 baseline 字串繪製的基本線 ascent 基本線向上的最大距離 descent 基本線向下的最大距離 leading 字型與字型間的距離。

程式CH08_03.java 方法名稱 說明 int getAscent() 傳回字的Ascent位置 int getDescent() 傳回字的Dscent位置 int getHeight() 傳回字的高度。 int getLeading() 傳回兩行之間的距離。 int getMaxAscent() 傳回字的最大Ascent位置。 int getMaxDescent() 傳回字的最大Descent位置。 int charWidth(字元) char是傳回特定字元的寬度。 int charsWidth(字元陣列),開始位置 ,結束位置) 傳回字串陣列中各字元的前進寬度。 int stringWidth() 傳回字串的寬度。 int getMaxAdvance() 傳回字的最大Advance位置

在AWT類別裡,每種字型都是一個Font物 件,可以讓使用者能取得或設定所用字 型的名稱、樣式、大小。

Font類別裡常用的方法 方法名稱 說明 boolean isPlain() 表示是否使用平體,如果是則傳回true,不是則傳回false。另有isBold()和isItalic()方法。 String getFamily() 取得字型組,就是同一字型但大小不一樣。 String getFontName() 取得字型名稱。 String toString() 將字型物件轉換成字串物件。

顏色的設定 通常分為前景顏色、背景顏色 setColor(Color 前景顏色) 前景色是元件本身要繪製的顏色,譬如 繪製字串時的字串顏色。

setBackground(Color 背景顏色) 背景色是設定視窗或是元件的背景顏色。

畫出字串的顏色就是前景色,視窗畫面 的顏色就是背景色。

自行設定顏色的Color類別的建構子 建構子名稱 說明 Color(int 紅色,int 綠色,int 藍色) 建立紅、綠、欄所組成的Color物件,若設定為float數值介於0.0~1.0間。 Color(int 顏色位元) 建立顏色位元所組成的Color物件,rgb0~7位元是藍色;8~15是綠色;16~23是紅色。

較常使用到的顏色常數: 顏色名稱 常數 black Color(0,0,0) orange Color(255,200,0) blue pink Color(255,175,175) lightGray Color(192,192,192) red Color(255,0,0) gray Color(128,128,128) white Color(255,255,255) green Color(0,255,0) yellow Color(255,255,0)

Color類別幾個常用的方法 程式CH08_04.java 方法名稱 說明 int getBlue() 傳回藍色的設定值 int getRed() 傳回紅色的設定值 int getGreen() 傳回綠色的設定值 int getRGB() 傳回RGB成分,0~7位元是藍色;8~15是綠色;16~23是紅色。

認識Graphics2D類別 為抽象類別,繼承自Graphics類別,除了繼 承Graphics類別的方法之外,還提供幾何圖 形"座標轉移"的功能。這一個座標轉移的體 系,我們稱為「使用者空間」(userspace)。

Graphics2D類別,提供以下的抽象方法 方法名稱 說明 abstract void setPaint(Paint 顏色) 提供繪製圖形線條的顏色。 abstract void setStroke(Stroke 樣式) 提供繪製圖形線條的樣式。 abstract void setFont(Font字型) 提供繪製字串的字型,是繼承自Graphics類別。 abstract void transform() 提供繪製圖形線條的座標轉換體系,無標明代表使用預設體系。 abstract void setClip(int x座標,int y座標,int 寬度,int 長度) 提供繪製圖形的邊界。是繼承自Graphics類別。 abstract void setComposite(Composite屬性) 提供兩個繪製圖形的重疊屬性。

關於Graphics2D的圖形繪製有以下方法 方法名稱 說明 abstract void draw(Shape圖形) 繪製目前Graphics物件的圖形輪廓。 abstract void fill(Shape圖形) 填滿目前目前Graphics物件的圖形。 abstract void drawString(String字串,int x座標, int y座標) 將字串s畫在座標(x,y)上。 abstract void drawstring (AttributedCharacterIterator 重繪,int x座標,int y座標) 在(x,y)上重新繪製字串。 abstract void drawImage(BufferedImage 緩衝影像, BufferedImage Op  物件, x座標,y座標) 把物件裡的緩衝影像在(x,y)處顯現出來。

點 Point2D.Float p1=new point2D.Float(x,y) 建立一個2D的點其座標值為float型態,座 標值也可以用Double型態來設定。

Point2D類別常用的方法 方法名稱 說明 abstract double getX() 傳回Point2D物件的x座標。 abstract double getY() 傳回Point2D物件的y座標。 static double distance() 傳回兩點之間的距離。 double distance(Point2D物件) 傳回物件至物件的距離。 abstract void setLocation(int x座標,int y座標 ) 設定物件座標為(x,y)。 void setLocation(Point2D物件) 設定物件的座標。 double distance(int x座標,int y座標) 傳回Point2D物件至點(x,y)的距離。

直線段與矩形 主要有三個抽象類別來定義 Line2D類別 Rectangle2D類別 RoundRectangle2D類別 程式CH08_05.java 直線段與矩形 主要有三個抽象類別來定義 Line2D類別 Rectangle2D類別 RoundRectangle2D類別

平行移動與旋轉 程式CH08_05.java 方法名稱 說明 AffineTransform getTranslate() void rotate(idouble 角度) 目前Graphics2D物件座標旋轉角度。 void rotate (double角度, double x座標, double y座標) 目前物件座標平行移動至(x,y)物置,後旋轉theta度。 void translate(double tx座標, double ty座標) 目前Graphics2D物件座標平行移動至(tx,ty)物置。 void translate(double x座標, double y座標) 目前Graphics2D物件座標平行移動至(x,y)

8-2 動畫的原理與製作 動畫原理及Timer類別 8-2 動畫的原理與製作 動畫原理及Timer類別 動畫的原理,就是將一連串的圖片,以 一定的時間間隔來依序顯示出來,並利 用視覺暫留的原理來造成移動的現象。 影像撥放的速度單位是"FPS(Frame Per Second)",也就是每秒可撥放的畫框

Timer類別的建構子語法 Timer(int 延遲時間,ActionListoner事件監 聽者)

Timer類別常用方法 程式CH08_06.java 方法名稱 說明 void addActionListener() 為物件加入事件傾聽者 void removeActionListener() 移除事件傾聽者 void setDelay() 設定時間的延遲 void start() 啟動Timer物件發出事件 void restart() 重新啟動Timer物件 void stop() 停止Timer物件發出事件

程式CH08_07.java 動畫的產生方法 圖片位置的移動 一種比較簡單的動畫表現方式,單純的利 用Timer類別,並配合圖片的載入,將圖 片顯示的位置,從畫面的一端移到另一端, 達到動畫的效果。

程式CH08_08.java 動畫迴圈 以連續的圖片利用迴圈的方式重複撥放 來形成動畫。

程式CH08_09.java

public void update(Graphics g){ paint(g); } 程式CH08_10.java 改善動畫的撥放品質 重新定義update()方法: public void update(Graphics g){ paint(g); }