Advertisement
Leedwon

Untitled

Jul 18th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.89 KB | None | 0 0
  1. package com.example;
  2.  
  3. import javax.swing.*;
  4. import java.awt.*;
  5. import java.awt.geom.Ellipse2D;
  6. import java.awt.image.BufferStrategy;
  7. import java.util.concurrent.ThreadLocalRandom;
  8.  
  9. public class MyCanvas extends Canvas {
  10.     private static final double dotSize = 25;
  11.     private int tryBall = 50;
  12.     private Color tryBallColor = Color.RED;
  13.     private Dot[] population;
  14.  
  15.     MyCanvas(int populationSize){
  16.         setIgnoreRepaint(true);
  17.         population = new Dot[populationSize];
  18.         for(int i = 0; i < populationSize; ++i){
  19.             double x = ThreadLocalRandom.current().nextDouble(560);
  20.             double y = ThreadLocalRandom.current().nextDouble(360);
  21.             population[i] = new Dot(x, y, dotSize);
  22.         }
  23.         Chrono chrono = new Chrono(this);
  24.         new Timer(16, chrono).start();
  25.     }
  26.  
  27.     public void myRepaint(){
  28.         int tryX = ThreadLocalRandom.current().nextInt(560);
  29.         int tryY = ThreadLocalRandom.current().nextInt(360);
  30.         BufferStrategy strategy = getBufferStrategy();
  31.         Graphics2D graphics2D = (Graphics2D) strategy.getDrawGraphics();
  32.         graphics2D.setColor(Color.BLACK);
  33.         for(Dot dot : population) {
  34.             double x = dot.getX();
  35.             double y = dot.getY();
  36.             double radius = dot.getRadius();
  37.             Ellipse2D.Double drawableDot = new Ellipse2D.Double(x, y, radius, radius);
  38.             graphics2D.fill(drawableDot);
  39.         }
  40.         Ellipse2D.Double tryDot = new Ellipse2D.Double(tryX, tryY, tryBall, tryBall);
  41.         graphics2D.setColor(Color.RED);
  42.         graphics2D.fill(tryDot);
  43.         if(graphics2D != null){
  44.             graphics2D.dispose();
  45.         }
  46.  
  47.         strategy.show();
  48.         Toolkit.getDefaultToolkit().sync();
  49.     }
  50.  
  51.     public void populationUpdate(){
  52.         for(Dot dot : population){
  53.             dot.move(10);
  54.         }
  55.         myRepaint();
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement