Monte carlo i rysowanie punktów z delay'em

0

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);

    }
}
0

JAK prostytutka ZROBIŁEŚ PROGRAM I prostytutka DELAYA NIE POTRAFISZ DAĆ

TO JAK GO prostytutka ZROBIŁEŚ ?!?!?!

0
youmound napisał(a):

JAK prostytutka ZROBIŁEŚ PROGRAM I prostytutka DELAYA NIE POTRAFISZ DAĆ

TO JAK GO prostytutka ZROBIŁEŚ ?!?!?!

No mam wszystko poza DELAYEM

0

Użyj statycznej metody sleep, na końcu pętli:

Thread.sleep(x); 

1 użytkowników online, w tym zalogowanych: 0, gości: 1