Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.foo;
- import java.awt.BorderLayout;
- import java.awt.Graphics;
- import java.awt.Polygon;
- import java.awt.event.WindowAdapter;
- import java.awt.event.WindowEvent;
- import java.awt.event.WindowListener;
- import java.util.Arrays;
- import javax.swing.JDialog;
- import javax.swing.JPanel;
- import javax.swing.SwingUtilities;
- import javax.swing.WindowConstants;
- public class SomeClass {
- public static void main(String[] args) {
- SwingUtilities.invokeLater(SomeClass::main2);
- }
- static void main2() {
- JDialog dlg = new JDialog();
- dlg.setSize(400, 400);
- JPanel pnl = new JPanel() {
- private static final long serialVersionUID = -8457824227977035142L;
- public void paint(Graphics g) {
- super.paint(g);
- g.drawPolygon(star(200));
- };
- };
- pnl.setSize(400, 400);
- dlg.getRootPane().setLayout(new BorderLayout());
- dlg.getRootPane().add(pnl);
- dlg.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
- dlg.addWindowListener(new WindowAdapter() {
- @Override
- public void windowClosed(WindowEvent e) {
- System.exit(0);
- }
- });
- dlg.setVisible(true);
- }
- static Polygon star(final int r) {
- final int n = 5;
- final double angle = 2d * Math.PI / n;
- final double side = 2d * r * Math.cos(angle);
- int[] xs = new int[n];
- int[] ys = new int[n];
- double x = r;
- double y = 0;
- double φ = angle;
- for (int ω = 0; ω < n * 2; ω += 2) {
- final int i = ω % n;
- xs[i] = (int) x;
- ys[i] = (int) y;
- x += (side * Math.cos(φ));
- y += (side * Math.sin(φ));
- φ += angle;
- }
- return new Polygon(xs, ys, n);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement