Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.geom.Ellipse2D;
- import java.awt.image.BufferStrategy;
- import java.util.concurrent.ThreadLocalRandom;
- public class MyCanvas extends Canvas {
- private static final double dotSize = 25;
- private int tryBall = 50;
- private Color tryBallColor = Color.RED;
- private Dot[] population;
- MyCanvas(int populationSize){
- setIgnoreRepaint(true);
- population = new Dot[populationSize];
- for(int i = 0; i < populationSize; ++i){
- double x = ThreadLocalRandom.current().nextDouble(560);
- double y = ThreadLocalRandom.current().nextDouble(360);
- population[i] = new Dot(x, y, dotSize);
- }
- Chrono chrono = new Chrono(this);
- new Timer(16, chrono).start();
- }
- public void myRepaint(){
- int tryX = ThreadLocalRandom.current().nextInt(560);
- int tryY = ThreadLocalRandom.current().nextInt(360);
- BufferStrategy strategy = getBufferStrategy();
- Graphics2D graphics2D = (Graphics2D) strategy.getDrawGraphics();
- graphics2D.setColor(Color.BLACK);
- for(Dot dot : population) {
- double x = dot.getX();
- double y = dot.getY();
- double radius = dot.getRadius();
- Ellipse2D.Double drawableDot = new Ellipse2D.Double(x, y, radius, radius);
- graphics2D.fill(drawableDot);
- }
- Ellipse2D.Double tryDot = new Ellipse2D.Double(tryX, tryY, tryBall, tryBall);
- graphics2D.setColor(Color.RED);
- graphics2D.fill(tryDot);
- if(graphics2D != null){
- graphics2D.dispose();
- }
- strategy.show();
- Toolkit.getDefaultToolkit().sync();
- }
- public void populationUpdate(){
- for(Dot dot : population){
- dot.move(10);
- }
- myRepaint();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement