iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0
佛心分享-SideProject30

從0開始—初階程式語言學習者的必經之路系列 第 27

DAY27〰️繪畫鋸齒圖案—使用Graphics 2

  • 分享至 

  • xImage
  •  

今天延續昨天撰寫的程式 使用更複雜的方法
Graphics2D 是 Java 提供的一個高級繪圖類別
/Graphics 類的子類,允許進行更加精細和複雜的繪圖操作
/Graphics2D 提供了更多的繪圖控制選項,如抗鋸齒、旋轉、縮放、平移、以及複雜的形狀和字型渲染。

主要特性:

  1. Rendering Hints (渲染提示)

    • Graphics2D 允許設定各種渲染提示,以控制繪圖質量和性能之間的平衡。最常見的渲染提示是抗鋸齒,這能讓圖形顯得更加平滑。
    • 例子:
      g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
      
  2. Transformation (變換)

    • Graphics2D 支持對圖形進行旋轉、縮放、平移、鏡像等變換操作。這些變換可以對任何圖形應用,讓開發者能夠輕鬆創建動態效果或進行座標變換。
    • 例子:
      g2d.rotate(Math.toRadians(45));  // 旋轉45度
      g2d.scale(1.5, 1.5);             // 將圖形放大1.5倍
      g2d.translate(50, 100);          // 將圖形平移50個像素和100個像素
      
  3. Shape (形狀繪製)

    • Graphics2D 支持使用 java.awt.Shape 介面來繪製各種形狀,如矩形、橢圓、圓形、多邊形、弧形等。開發者還可以自定義複雜的形狀並進行繪製。
    • 例子:
      Shape rectangle = new Rectangle2D.Double(50, 50, 100, 50);
      g2d.draw(rectangle);  // 繪製矩形
      
  4. Stroke (筆觸)

    • Graphics2D 允許設置不同的筆觸樣式來繪製邊框或線條,例如虛線、粗線等。這對於創建複雜的圖形或自定義邊框樣式非常有用。
    • 例子:
      g2d.setStroke(new BasicStroke(5));  // 設置5像素寬的實線
      
  5. Paint (填充)

    • Graphics2D 提供了多種填充選項,如純色填充、漸變填充、紋理填充等。這允許開發者控制圖形內部的填充效果。
    • 例子:
      g2d.setPaint(Color.RED);  // 紅色填充
      g2d.fill(rectangle);      // 填充矩形
      
  6. Composite (複合效果)

    • Graphics2D 允許設定複合模式,用來控制圖形的透明度及繪製過程中的混合效果。這對於創建透明效果或圖像疊加非常有用。
    • 例子:
      g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));  // 設置50%透明度
      
  7. Text Rendering (文字渲染)

    • 除了圖形繪製外,Graphics2D 也可以用來渲染文字。它提供了對字體和字形的細粒度控制,支持不同的字型渲染和排版。
    • 例子:
      g2d.setFont(new Font("Serif", Font.BOLD, 24));  // 設置字體
      g2d.drawString("Hello, Graphics2D!", 50, 150); // 繪製文字
      

主要應用場景:

  • 高質量的2D圖形繪製Graphics2D 適用於任何需要精細控制繪圖效果的應用程序,如繪製圖表、製作動畫、以及生成高質量的圖像。
  • 自定義 UI 元素:開發者可以使用 Graphics2D 來創建自定義的按鈕、進度條等 UI 元素,實現更豐富的界面效果。
  • 遊戲開發:在簡單的 2D 遊戲中,Graphics2D 可以用來繪製遊戲角色、背景、障礙物等圖形元素,並應用變換和效果來實現動態效果。

典型使用過程:

  1. 取得 Graphics2D 物件:
    paintComponent(Graphics g) 方法中,通常會將 Graphics 對象轉型為 Graphics2D

  2. 設定渲染提示(如抗鋸齒),定義畫筆顏色、筆觸、字體等。

  3. 使用形狀(如 Shape)或字型進行繪製操作。

  4. 進行必要的變換操作(如旋轉、縮放等),並在繪製後重置變換以避免影響其他繪圖內容。


上一篇
DAY26 🔴🟨〰️如何使用Java繪畫簡易圖形
下一篇
DAY28 初級AI 👩🏻‍💻試用Java撰寫簡單決策樹
系列文
從0開始—初階程式語言學習者的必經之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言