Java 2D API 包含 java.awt.Graphics2D
class,它繼承自 Graphics
class,提供增強型的圖像(graphics)和描圖(rendering)等特色,包括有:
- draw methos :使用 stroke 和 paint 屬性來描繪任何圖形的外框(outline)。
- fill method :可依指定的 paint 屬性填滿顏色(color)或圖案(pattern)。
- drawString method :可畫出文字,其中的 font 屬性會被轉換成圖形,並可填滿由 paint 屬性所指定的顏色或圖案。
- drawImage method :可畫出指定的圖像(image)。
以上提到的 method 都離不開以下兩個群組:
- 畫出形狀的方法(Methods to draw a shape)。
- 影響描圖的方法(Methods that affect rendering)。
第2個群組使用由 Graphics2D 而來的 state 屬性,有以下幾個目的:
- 改變筆劃的寬度(stroke width)
- 改變筆劃的組合
- 設定剪裁路徑去限制描圖範圍
- 定義顏色和圖案去填滿形狀
- 指定如何組合多重圖像
Java 2D API 可透過型別轉換(cast)將由 Graphics object 產生的元件(component)轉型成 Graphics2D object,如下範例:
public void paint (Graphics g) { Graphics2D g2 = (Graphics2D) g; ... }
以下列出幾個 Graphics2D class 描圖所包含的幾個屬性:
pen 屬性:圖形的外框(outline)。這個筆劃(stroke)屬性允許你畫出任何尺寸的實線和虛線(dashing),並且可以在線端(end-cap)加上裝飾。 | |
fill 屬性:用在圖形的內部。這個顏料(paint)屬性可以讓你填滿單色(solid colors)、斜度(gradients)和圖案(patterns)。 | |
compositing 屬性:用在圖形物件的重疊上(overlap) | |
transform 屬性:可以將座標空間從 user space 轉成 device-space 。選項有:變形(translation)、旋轉(rotation)、縮放(scaling)和裁切(shearing)。 |
|
clip 屬性:使用任何 Shape Object 的外框去定義剪裁路徑(clipping path)。 | |
font 屬性:轉換文字字串(text strings)為圖形。 | |
Rendering hits:調整速度(speed)和品質(quality)兩者間的偏好設定。 |
(以上圖片來源:http://java.sun.com/docs/books/tutorial/2d/overview/rendering.html)
參考資料:http://java.sun.com/docs/books/tutorial/2d/overview/rendering.html
近期迴響