Java 使用Graphics2D以及Polygon绘制蛛网图以及蛛网图里的横线
时间: 2024-03-30 09:39:53 浏览: 57
好的,我知道了。下面是绘制蛛网图和横线的 Java 代码:
```
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.geom.Line2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class SpiderWeb extends JPanel {
private static final long serialVersionUID = 1L;
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
int centerX = getWidth() / 2;
int centerY = getHeight() / 2;
int radius = 100;
int numSides = 6;
double angle = 2 * Math.PI / numSides;
// 绘制多边形
Polygon polygon = new Polygon();
for (int i = 0; i < numSides; i++) {
int x = (int) (centerX + radius * Math.cos(i * angle));
int y = (int) (centerY - radius * Math.sin(i * angle));
polygon.addPoint(x, y);
}
g2d.draw(polygon);
// 绘制横线
for (int i = 0; i < numSides; i++) {
int x = (int) (centerX + radius * Math.cos(i * angle));
int y = (int) (centerY - radius * Math.sin(i * angle));
g2d.draw(new Line2D.Double(centerX, centerY, x, y));
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("Spider Web");
frame.add(new SpiderWeb());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
```
这段代码中,我们首先定义了一个多边形,然后通过循环计算出每个顶点的坐标,最终绘制出了蛛网图。
接着,我们再通过循环计算每个顶点与中心点的连线的坐标,从而绘制出了横线。
最后,我们将这个 JPanel 添加到 JFrame 中,并设置一些基本属性,如窗口大小、标题等。运行程序后,即可看到绘制出的蛛网图和横线。
阅读全文