Bootstrap

Java笔记-多边形绘制

多边形绘制

在界面上任意位置画点,将点连成多边形

实现思路

  • 实现MouseListener接口,触发点击事件画点
  • 定义一个类表示点的信息
  • 定义数组存储所有已绘制的点
  • 遍历所有的点,并记录x和y的最大值和最小值
  • 根据x、y的最大值和最小值确定原点,建立坐标系
  • 计算每个点与原点的角度,根据角度排序
  • 按顺序连接点

完整代码

定义Point类

x、y为鼠标点击的位置,angle为与原点的角度,为了能直接使用sort方法,需要实现Comparable接口

public class Point implements Comparable{
   
    private int x;
    private int y;
    private double angle;

    public Point(){
   

    }

    public Point(int x,int y){
   
        this.x = x;
        this.y = y;
        this.angle = 0;
    }

    public int getX() {
   
        return x;
    }

    public void setX(int x) {
   
        this.x = x;
    }

    public int getY() {
   
        return y;
    }

    public void setY(int y) {
   
        this.y = y;
    }

    public double getAngle() {
   
        return angle;
    }

    public void setAngle(double angle) {
   
        this.angle = angle;
    }

    @Override
    public int compareTo(Object o) {
   
        Point p = (Point)o;
        if (angle<p.getAngle()){
   
            return -1;
        }else if (angle == p.getAngle()){
   
            return 0;
        }else {
   
            return 1;
        }
    }
}

实现MouseListener接口,并实现绘制方法

;