Potrzebuje zrobić program w Javie, który za pomocą metody Monte Carlo oblicza wartość liczby PI (zrobione), do tego ma graficznie przedstawić rysowanie kwadratu i wpisanego do niego koła (zrobione), na tych kształtach maja rysować sie losowo punkty ( zrobione) no i najwiekszy problem, pomiedzy rysowaniem kolejnego punktu ma być odstęp czasowy np. 1 sek. Jak taki odstęp zrobić. Niżej aktualny kod:
import javax.swing.*;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
public class MyPanel extends JPanel {
//PODAWANIE DANYCH:
//------------------------------------------------------------------
double points = 100000; //liczba losowanych punktów
double points_in_circle = 0; //zmienna potrzebna do obliczenia liczby PI
int frame_Width = 400; //szerokośc okna
int frame_Height = 400; //wysokośc okna
int shape_Width = frame_Width - 20; //szerokość kształtów
int shape_Height = frame_Height - 20; //wysokość kształtów
int shape_location_x = 10; //wspolzedna x polozenia kształtu
int shape_location_y = 10; //wspolzedna y polozenia ksztaltu
public MyPanel() {
setPreferredSize(new Dimension(frame_Width, frame_Height)); //preferowany rozmiar okna
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
//prostokąt
Rectangle2D rectangle = new Rectangle2D.Double(10, 10, shape_Width, shape_Height);
//koło
Ellipse2D ellipse = new Ellipse2D.Double(10, 10, shape_Width, shape_Height);
g2d.draw(rectangle);
g2d.draw(ellipse);
double x, y;
for (int i = 0; i <= points; i++) {
x = Math.random() * (shape_Width - 1) + (shape_location_x + 1); //ZEBY NIE WYCHODZILO TO ROZMIAR KSZTALTU -1 I POLOZENIE
y = Math.random() * (shape_Height - 1) + (shape_location_y + 1);
Ellipse2D point = new Ellipse2D.Double(x, y, 1, 1);
g2d.draw(point);
if (Math.hypot(x, y) < frame_Width) ++points_in_circle;
}
double PI = 4. * (points_in_circle / points);
System.out.println("Liczba PI wynosi: " + PI);
}
}