今天延續昨天撰寫的程式 使用更複雜的方法Graphics2D
是 Java 提供的一個高級繪圖類別
/Graphics
類的子類,允許進行更加精細和複雜的繪圖操作
/Graphics2D
提供了更多的繪圖控制選項,如抗鋸齒、旋轉、縮放、平移、以及複雜的形狀和字型渲染。
Rendering Hints (渲染提示)
Graphics2D
允許設定各種渲染提示,以控制繪圖質量和性能之間的平衡。最常見的渲染提示是抗鋸齒,這能讓圖形顯得更加平滑。g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Transformation (變換)
Graphics2D
支持對圖形進行旋轉、縮放、平移、鏡像等變換操作。這些變換可以對任何圖形應用,讓開發者能夠輕鬆創建動態效果或進行座標變換。g2d.rotate(Math.toRadians(45)); // 旋轉45度
g2d.scale(1.5, 1.5); // 將圖形放大1.5倍
g2d.translate(50, 100); // 將圖形平移50個像素和100個像素
Shape (形狀繪製)
Graphics2D
支持使用 java.awt.Shape
介面來繪製各種形狀,如矩形、橢圓、圓形、多邊形、弧形等。開發者還可以自定義複雜的形狀並進行繪製。Shape rectangle = new Rectangle2D.Double(50, 50, 100, 50);
g2d.draw(rectangle); // 繪製矩形
Stroke (筆觸)
Graphics2D
允許設置不同的筆觸樣式來繪製邊框或線條,例如虛線、粗線等。這對於創建複雜的圖形或自定義邊框樣式非常有用。g2d.setStroke(new BasicStroke(5)); // 設置5像素寬的實線
Paint (填充)
Graphics2D
提供了多種填充選項,如純色填充、漸變填充、紋理填充等。這允許開發者控制圖形內部的填充效果。g2d.setPaint(Color.RED); // 紅色填充
g2d.fill(rectangle); // 填充矩形
Composite (複合效果)
Graphics2D
允許設定複合模式,用來控制圖形的透明度及繪製過程中的混合效果。這對於創建透明效果或圖像疊加非常有用。g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f)); // 設置50%透明度
Text Rendering (文字渲染)
Graphics2D
也可以用來渲染文字。它提供了對字體和字形的細粒度控制,支持不同的字型渲染和排版。g2d.setFont(new Font("Serif", Font.BOLD, 24)); // 設置字體
g2d.drawString("Hello, Graphics2D!", 50, 150); // 繪製文字
Graphics2D
適用於任何需要精細控制繪圖效果的應用程序,如繪製圖表、製作動畫、以及生成高質量的圖像。Graphics2D
來創建自定義的按鈕、進度條等 UI 元素,實現更豐富的界面效果。Graphics2D
可以用來繪製遊戲角色、背景、障礙物等圖形元素,並應用變換和效果來實現動態效果。取得 Graphics2D
物件:
在 paintComponent(Graphics g)
方法中,通常會將 Graphics
對象轉型為 Graphics2D
。
設定渲染提示(如抗鋸齒),定義畫筆顏色、筆觸、字體等。
使用形狀(如 Shape
)或字型進行繪製操作。
進行必要的變換操作(如旋轉、縮放等),並在繪製後重置變換以避免影響其他繪圖內容。