使用Graphics2D去除曲線鋸齒狀


基於Graphics2D類的繪圖功能,是對AWT中的Graphics類的進一步的擴展和增強。主要體現在:

1。對渲染質量的控制:消除鋸齒以平滑繪制對象的邊緣

2.裁剪、合成和透明度:它們允許使用任意形狀來限定繪制操作的邊界。它們還提供對圖形進行分層以及控制透明度和不透明度的能力。

3.控制和填充簡單及復雜的形狀:這種功能提供了一個 Stroke 代理和一個 Paint 代理,前者定義用來繪制形狀輪廓的筆(定義繪制的筆的寬度和樣式),后者允許用純色、漸變色和圖案來填充形狀。

4。圖像處理和變換:Java 2D 同 Java 高級圖像 APIJava Advanced Imaging API (JAI))協作,支持用大量圖形格式處理復雜的圖像。Java 2D 還為您提供了修改圖像、形狀和字體字符的變換能力。

5。特殊的填充方式,如梯度或者圖案

6.高級字體處理和字符串格式化:允許象操作任何其它圖形形狀一樣操作字體字符。除此以外,可以象文字處理程序一樣,通過為 String 中的字符應用屬性和樣式信息來創建格式化文本。

在Graphics2D模式下的基本繪圖框架。我們可以利用:

         g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,

                          RenderingHints.VALUE_ANTIALIAS_ON);

通過該方法的設置,使圖形去除鋸齒狀,可以得到細膩的圖形。

 

public void paintComponent(Graphics g1){ super.paintComponent(g1); Graphics2D g=(Graphics2D)g1; Stroke stroke = g.getStroke(); g.setStroke(new BasicStroke(3.5f, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_ROUND)); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setColor(new Color(10,255,255)); //畫出曲線
        g.draw(new Line2D.Float(x[i], GPHeight-y[i], x[i+1], GPHeight-y[i+1])); g.setStroke( stroke ); //將畫刷復原 
}

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM