绘制几何图形

《零基础学Java》


  • 绘制几何图形

    Java可以分别使用 GraphicsGraphics2D 绘制图形,Graphics类 使用不同的方法绘制不同的图形(drawLine()方法可f以绘制线、drawRect()方法用于绘制矩形、drawOval()方法用于绘制椭圆形)。

    Graphics类常用的图形绘制方法:

Graphics2D类 继承 Graphics类,它包含 Graphics类 的绘图方法并增加了更强大的功能,在创建绘图类时推荐使用该类。Graphics2D类可以分别使用不同的类来表示不同的形状,如Line2D、Rcctangle2D等。

绘制指定形状的图形,先需要创建并初始化该图形类的对象,这些图形类必须是Shape接口的实现类,然后使用Graphics2D类的drav()方绘制该图形对象或者使用fill()方法填充该图形对象。

drav()、fill()语法:

drav(Shapae form);
fill(Shapae form); //填充

/**
* form是指实现Shape接口的对象.java.awt.gcom包中提供了如下一些常用的图形类,这些图形类都实现了Shape接口;
* Arc2D:存储所有2D弧度的对象的抽象超类,其中2D弧度由窗体矩形、起始角度、角跨越(弧的长度)和闭合类型(OPEN、CHORD或PIE)定义.
* CubicCurve2D:定义(x,y)坐标空间内的三次参数曲线段。
* Ellipse2D:描述窗体矩形定义的椭圆。
* Line2D:(x,y)坐标空间中的线段。
* Path2D:提供一个表示任意几何形状路径的简单而又灵活的形状。
* QuadCurve2D:定义(x,y)坐标空间内的二次参数曲线段。
* Rectangle2D:描述通过位置(x,y)和尺寸(w,x,h)定义的矩形。
* RoundRectangle2D:定义一个矩形,该矩形具有由位置(x,y)、尺寸(w,x,h)以及圆角弧的宽度和高度定义的圆角。
*/

绘制几何图形 实例:

import javax.swing.*;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;

public class Demo extends JFrame {
    public Demo(){
        super();
        init();
    }

    public void init(){
        this.setSize(500,300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("绘制几何图形");

        MyCabvas c = new MyCabvas(); //创建一个画布类的对象
        add(c);
    }

    public static void main(String[] args) {
        new Demo().setVisible(true);
    }

    private class MyCabvas extends Canvas{ //创建画布类
        @Override
        public void paint(Graphics g) {
            Graphics2D g2 = (Graphics2D)g; //新绘图类

            g2.drawOval(5,5,100,100); //画 圆形

            g2.drawRect(15,15,80,80); //画 矩形
            g2.fillRect(15,15,80,80); //画 矩形 填充式

//            g2.drawArc(320,25,100,50,270,200); //画 弧形 (startAngle:开始角度、arcAngle:跨越角度)
            g2.fillArc(320,25,100,50,270,200); //画 弧形 填充式 (startAngle:开始角度、arcAngle:跨越角度)


            g2.drawLine(5,120,100,120); //画 直线 横
            g2.drawLine(50,120,50,200); //画 直线 竖

//            g2.drawRoundRect(120,120,100,50,10,10); //画 圆角矩形 (arcWidth:水平直径、arcHeight:弧度直径)
            g2.fillRoundRect(120,120,100,50,10,10); //画 圆角矩形 填充式 (arcWidth:水平直径、arcHeight:弧度直径)


            int x[] = {250,300,250,300};
            int y[] = {130,130,200,200};
            g2.drawPolygon(x,y,4); //画 多边形 (nPonts:有多少个点)
            g2.fillPolygon(x,y,4); //画 多边形 填充式 (nPonts:有多少个点)


//            g2.drawPolyline(x,y,4); //画 多边线


            /*
                图形对象
             */
            Shape shape1 = new Rectangle2D.Double(110,5,100,100); //矩形图形对象
//            g2.draw(shape1); //画 shape1 这个图形
            g2.fill(shape1); //画 shape1 这个图形 填充式

            Shape shape2 = new Ellipse2D.Double(220,15,80,80); //圆形图形对象
            g2.draw(shape2);

        }
    }
}

绘制几何图形 实例 输出结果:

posted on 2022-05-21 14:52  TeaTracing  阅读(593)  评论(0编辑  收藏  举报