我们可以使用Java语言中的Graphics2D类来绘制多边形与矩形,并使用循环和数组来计算所有多边形的点的最小和最大值。最后,根据这些值来绘制一个围绕多边形的矩形。
以下为简单示例代码:
import java.awt.*;
import javax.swing.*;
public class PolygonBlocker extends JPanel {
private int[][] points = new int[][]{{50, 100}, {150, 50}, {250, 100}, {300, 200}, {100, 200}};
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
//绘制原始多边形
Polygon polygon = new Polygon();
for(int i = 0; i < points.length; i++) {
polygon.addPoint(points[i][0], points[i][1]);
}
g2d.draw(polygon);
//计算多边形的最小和最大值
int minX = points[0][0];
int maxX = points[0][0];
int minY = points[0][1];
int maxY = points[0][1];
for(int i = 1; i < points.length; i++) {
int x = points[i][0];
int y = points[i][1];
if(x < minX) minX = x;
else if(x > maxX) maxX = x;
if(y < minY) minY = y;
else if(y > maxY) maxY = y;
}
//绘制矩形
g2d.drawRect(minX, minY, maxX - minX, maxY - minY);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Polygon Blocker");
frame.add(new PolygonBlocker());
frame.setSize(