javapackage p1008; import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class CirclePoints extends JPanel { private int n; // Number of points private final int radius = 200; // Radius of the circle public CirclePoints(int n) { this.n = n; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; // Calculate the center of the panel int centerX = getWidth() / 2; int centerY = getHeight() / 2; // Draw points and connect them double angleIncrement = 2 * Math.PI / n; int[] xPoints = new int[n]; int[] yPoints = new int[n]; for (int i = 0; i < n; i++) { double angle = i * angleIncrement; int x = (int) (centerX + radius * Math.cos(angle)); int y = (int) (centerY + radius * Math.sin(angle)); xPoints[i] = x; yPoints[i] = y; // Draw the point g2d.fillOval(x - 5, y - 5, 10, 10); } // Connect the points for (int i = 0; i < n; i++) { for(int j=i+1;j<n;j++){ g2d.drawLine(xPoints[i], yPoints[i], xPoints[j], yPoints[j]); } } } public static void main(String[] args) { int n = Integer.parseInt(JOptionPane.showInputDialog("请输入一个5到36之间的整数:")); if (n < 5 || n > 36) { System.out.println("输入无效,请输入5到36之间的整数。"); return; } JFrame frame = new JFrame("Circle Points"); CirclePoints circlePoints = new CirclePoints(n); frame.add(circlePoints); frame.setSize(500, 500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); // Save the panel as an image BufferedImage image = new BufferedImage(frame.getWidth(), frame.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics2D g2d = image.createGraphics(); circlePoints.paint(g2d); g2d.dispose(); try { ImageIO.write(image, "jpg", new File("res.jpg")); System.out.println("图片已保存为 res.jpg"); } catch (IOException e) { e.printStackTrace(); } } }
使用 java画图。
laocooon5238578862024-10-15 20:42
相关推荐
j_xxx404_1 小时前
数据结构:栈和队列力扣算法题南莺莺1 小时前
假设一个算术表达式中包含圆括号、方括号和花括号3种类型的括号,编写一个算法来判别,表达式中的括号是否配对,以字符“\0“作为算术表达式的结束符THMAIL2 小时前
深度学习从入门到精通 - 神经网络核心原理:从生物神经元到数学模型蜕变野犬寒鸦2 小时前
力扣hot100:旋转图像(48)(详细图解以及核心思路剖析)墨染点香2 小时前
LeetCode 刷题【61. 旋转链表】一枝小雨2 小时前
【OJ】C++ vector类OJ题Tisfy2 小时前
LeetCode 3516.找到最近的人:计算绝对值大小自信的小螺丝钉2 小时前
Leetcode 206. 反转链表 迭代/递归黑色的山岗在沉睡3 小时前
LeetCode 189. 轮转数组墨染点香3 小时前
LeetCode 刷题【65. 有效数字】