有这样一个需求,在一张图片上画几条线并保存,如图所示:
已知各个点的x,y坐标,坐标范围是[0.000,1],即将横纵方向分成1000份。
我们可以使用java.awt.Graphics2D的库来实现。
Graphics2D在Graphics类提供绘制各种基本的几何图形的基础上进行扩展,拥有更强大的二维图形处理能力,提供坐标转换、颜色管理以及文字布局等更精确的控制。Graphics2D类重要的属性包含以下几个
- stroke属性
控制线条的宽度、笔形样式、线段连接方式或短划线图案 - paint属性
控制填充效果 - transform属性
实现常用的图形平移、缩放和斜切等变换操作 - clip属性
实现剪裁效果 - composit属性
设置图形重叠区域的效果 - color
控制颜色,使用RGB构造 - Graphics2D类的绘图draw()
扩充了Graphics的许多方法,可以画线段、矩形、椭圆、圆弧、二次曲线甚至三次曲线等
相关代码如下:
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.Line2D;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* @author 94977
* @create 2018/12/22
*/
public class JfreeChart {
/**
* 线宽,这里默认设置所有线宽都一样,也可根据需求分别设置
*/
private static final float STROKE_WIDTH = 3.0f;
/**
* 箭头的高度,单位像素
*/
private static final Integer ARROW_HEIGHT = 40;
/**