`

JAVA Graphics2D画笔初体验

阅读更多
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class Test {
    
    public static void main(String []args){
        Test.pressFive("d:/generImage.png", 1, 0, 0, 0, 0);
    }
    
    /** 
     * 生成五边形用的函数 
     * @param dstImg,输出图片文件名称 
     * @param v1,有效值为0-4 
     * @param v2,有效值为0-4 
     * @param v3,有效值为0-4 
     * @param v4,有效值为0-4 
     * @param v5,有效值为0-4 
     */  
    public final static void pressFive(String dstImg,int v1,int v2,int v3,int v4,int v5) {  
       try {  
           int picWidth=600,picHeight=600;  
           BufferedImage bufferedImage = new BufferedImage(picWidth, picHeight, BufferedImage.TYPE_INT_RGB);  
           Graphics2D g = bufferedImage.createGraphics();  
           g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1.0f));  
             
           //填充背景  
           g.setColor(new Color(255,255,255));  
           g.fillRect(0, 0, picWidth, picHeight);  
           int min = 90,deta=20,mark=50;  
           int [][]p1 = new int[5][2];           
           for(int i=0; i<5; i++){  
               p1[i][0]=picWidth/2;  
               p1[i][1]=picHeight/2-min-deta*i;  
           }  
             
           int [][]px = new int[5][5];  //一维:五个角中的那个角,二维:从里到外0-4  
           int [][]py = new int[5][5];    
           double angle=0.0;  
           //计算五个五边形的顶点。  
           for(int i=0; i<5; i++){  
               angle = 72*Math.PI*i/180;  
               for(int j=0; j<5; j++){  
                   px[i][j]=(int) Math.round(picWidth/2+(min+deta*j)*Math.sin(angle));  
                   py[i][j]=(int) Math.round(picHeight/2-(min+deta*j)*Math.cos(angle));  
               }  
           }  
           //绘制五个五边形  
           g.setColor(new Color(128,128,128));  
           for(int i=0; i<5; i++){  
               g.drawPolygon(new int[]{px[0][i],px[1][i],px[2][i],px[3][i],px[4][i]},  
                   new int[]{py[0][i],py[1][i],py[2][i],py[3][i],py[4][i]}, 5);  
           }  
             
           //绘制根据指定的顶点序号,绘制五边形  
           g.setColor(new Color(0,204,255));  
           g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.5f));  
           g.fillPolygon(new int[]{px[0][v1],px[1][v2],px[2][v3],px[3][v4],px[4][v5]},   
                   new int[]{py[0][v1],py[1][v2],py[2][v3],py[3][v4],py[4][v5]}, 5);  
     
           //输出文字  
           g.setColor(new Color(16,16,16));  
           int fontsize=12;  
           g.setFont(new Font("黑体",Font.PLAIN,fontsize));  
           String [] text = {"金","木","水","火","土"};  
            g.drawString(text[0]+"/"+(v1)*mark, px[0][4],py[0][4]-fontsize);  
            g.drawString(text[1]+"/"+(v2)*mark, px[1][4],py[1][4]);  
            g.drawString(text[2]+"/"+(v3)*mark, px[2][4],py[2][4]+fontsize);  
            g.drawString(text[3]+"/"+(v4)*mark, px[3][4]-fontsize*7,py[3][4]);  
            g.drawString(text[4]+"/"+(v5)*mark, px[4][4]-fontsize*7,py[4][4]);  
             
           g.dispose();  
           //保存图片  
           ImageIO.write(bufferedImage, "JPG", new File(dstImg));  
       } catch (IOException e) {  
           e.printStackTrace();  
       }  
    }  

}

 

分享到:
评论

相关推荐

    Java中Graphics2D介绍.pdf

    Graphics2D是Java 2D API的核心类,用于在Java平台上进行复杂的二维图形绘制。它扩展了基础的Graphics类,提供了更多的特性,如几何形状的绘制、坐标转换、颜色管理以及文本布局。在Java中,如果你需要生成验证码、...

    java2d graphics源码

    1. `Graphics2D` 类:这是Java 2D绘图的核心类,继承自`Graphics`,扩展了更多的二维图形操作功能。通过`Graphics2D`对象,你可以绘制各种几何形状(如矩形、椭圆、线条)、路径、文本和图像。 2. `Shape` 接口:...

    java绘制复杂图形并输出图片

    在`Graphics2D`中,还可以设置画笔的颜色、线型、填充模式、抗锯齿效果等属性,以实现更细腻的视觉效果。例如: ```java g2d.setColor(Color.BLUE); g2d.setStroke(new BasicStroke(5)); g2d.setRenderingHint...

    Java绘制2D学习文档

    `Graphics2D`类是这个概念的具体实现,它扩展了`Graphics`类,提供了更多的功能,如精确的线宽控制、平移、旋转、缩放、抗锯齿、渐变填充等。 1. **基本绘图对象**:在Java 2D中,你可以绘制线条、矩形、椭圆、圆、...

    java绘图 设置画笔属性 实例代码

    Java中的图形绘制主要依赖于`java.awt`和`javax.swing`这两个包,特别是`Graphics2D`类,它是`Graphics`类的扩展,提供了更多高级绘图特性,如画笔颜色、线型、填充模式等。在`LineDemo.java`这个示例中,我们很可能...

    java 多功能画笔

    在Java中,我们通常使用Graphics2D类来绘制图形。它提供了各种方法,如drawLine(), drawRect(), fillOval()等,用于绘制线条、形状和填充。在多功能画笔中,用户可能可以绘制直线、曲线、矩形、圆形等,同时支持...

    Demo.rar_DEMO_java画笔粗细

    以下是一些关于Java `Graphics2D`和画笔粗细的重要知识点: 1. **创建Graphics2D对象**:在Java中,我们通常从`Component`类的`paintComponent(Graphics g)`方法中获取`Graphics`对象。然后,我们可以将`Graphics`...

    java课程设计 画笔程序 可运行程序加报告

    在本Java课程设计中,我们将探讨如何创建一个具备基本绘图功能的程序,包括画笔、直线、圆形和矩形的绘制,同时提供调整画笔大小、颜色以及使用橡皮擦和清空画布的选项。这个项目不仅锻炼了开发者在图形用户界面...

    astar:使用 Java Graphics2D 进行可视化的 Astar 算法

    本项目是使用Java的Graphics2D库进行可视化的A*算法实现,让我们来详细探讨这个主题。 首先,Java Graphics2D是Java 2D API的一部分,用于创建和渲染二维图形、文本和图像。它提供了一系列方法,如绘制线、形状、...

    Java-Graphics-2D-and-3D.rar_Word by Word

    在Java中,Graphics2D是AWT中的核心类,用于处理二维图形。它扩展了Graphics类,提供了更多的方法来绘制复杂的形状、线条、文本和图像。Graphics2D支持矢量图形,这意味着无论放大多少倍,图形都能保持清晰。以下是...

    java 纹理填充特效源码

    在Java中,`java.awt.Graphics2D`类提供了强大的功能,可以实现各种复杂的纹理填充效果,包括但不限于简单的平铺、旋转、缩放、透明度控制等。此外,还可以结合Java的多线程和动画框架,创建动态的纹理填充特效,如...

    java给圆角矩形外线条加粗Demo.rar

    java给圆角矩形外线条加粗Demo,主要代码: @Override ... Graphics2D g2d=(Graphics2D)g; g2d.setStroke(stroke); g2d.setColor(Color.BLUE); g2d.drawRoundRect(10, 10, 200, 80, 20, 20); }

    java画笔简单实现按照参数显示的立体矩形

    `java.awt.Graphics2D`是Java 2D绘图的主要类,它提供了绘制二维图形的方法。`javax.swing`中的`JFrame`和`JPanel`则用于创建窗口和面板,承载我们的图形。 1. **创建绘图窗口** 首先,我们创建一个`JFrame`作为主...

    Java 2D API 中文使用指南

    - **Graphics2D对象**:它是Java 2D API的核心,用于在图形上下文中执行绘图操作。你可以通过`Graphics2D`类的实例来实现复杂的绘图任务。 - **坐标系统**:Java 2D使用笛卡尔坐标系统,原点默认位于窗口的左上角...

    JavaGraphicsExcercises-:使用Java Swing组件和GraphicsGraphics2d类,存储库中的每个文件都显示不同的练习。

    3. **`Graphics`与`Graphics2D`绘图**:学习如何获取`Graphics2D`对象,设置画笔颜色、线型、填充规则,绘制基本形状(如线、矩形、椭圆),以及如何绘制自定义路径和曲线。 4. **文字渲染**:学习如何使用`...

    java-huaturuanjian.zip_huaturuanjianzainao_java画图多边形_画笔java

    总结来说,这个Java画图程序充分利用了Java Swing库和`Graphics2D`类来提供一个交互式的图形绘制环境。它展示了如何在Java中实现图形用户界面、图形绘制、颜色选择、文件操作以及用户交互,为初学者提供了一个很好的...

    graphics-2d

    在这个"AndroidGraphics2D-master"压缩包中,很可能包含了关于如何在Android应用中进行2D图形编程的示例代码和教程。 在Android 2D绘图中,核心组件是`Canvas`和`Paint`。`Canvas`可以视为画布,开发者在其上进行...

    java 绘图板 java源代码

    Java Graphics2D是Java 2D API的一部分,用于在二维空间中进行绘图。在绘图板中,Graphics2D对象用于绘制线条、曲线、矩形、圆形等基本图形,以及添加文字和设置画笔属性(如颜色、线宽)。 3. **事件监听**: ...

    JAVA-calculator.zip_画笔java

    3. **绘图API**:Java提供了`Graphics2D`类,它是`Graphics`类的子类,用于在组件上进行高级绘图操作,如线条绘制、填充形状、文本渲染等。在本项目中,开发者可能使用了`Graphics2D`的`drawLine()`, `drawRect()`, ...

    java-drawings.zip_java-drawings_java画笔

    - JavaFX的`GraphicsContext`或Swing的`Graphics2D`接口提供了基本的绘图操作,如画线、画圆、填充形状等。它们都是基于Java的`Graphics`类进行扩展的,可以实现复杂的图形绘制。 6. **状态管理**: 为了保持画图...

Global site tag (gtag.js) - Google Analytics