zoukankan      html  css  js  c++  java
  • 使用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 ); //将画刷复原 
    }

     

     

  • 相关阅读:
    DQL、DML、DDL、DCL的概念与区别
    TeamViewer
    构建属于自己的ORM框架之二--IQueryable的奥秘
    某考试 T2 sum
    某考试 T1 line
    bzoj 2153: 设计铁路
    [SCOI2010]序列操作
    [SCOI2010]字符串
    [SCOI2010]传送带
    bzoj 2694: Lcm
  • 原文地址:https://www.cnblogs.com/xrong/p/2968519.html
Copyright © 2011-2022 走看看