Advertisement
Guest User

Untitled

a guest
Aug 8th, 2015
361
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.10 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.Dimension;
  3. import java.awt.GradientPaint;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.util.Observable;
  7. import java.util.Observer;
  8. import java.util.Random;
  9.  
  10. import javax.swing.JComponent;
  11.  
  12.    
  13.     public class Rysowanie extends JComponent implements Observer {
  14.      
  15.         //Wartosci
  16.         private static final double SUN_RADIUS_PROPORTION = 0.17; //Proporcja Słońca
  17.  
  18.         private static final int DEFAULT_WIDTH = 840;
  19.         private static final int DEFAULT_HEIGHT = 600;
  20.      
  21.         private static final int NUM_STARS = 100;
  22.         private static final int MAX_STAR_RADIUS = 3;
  23.         //Wartosci
  24.        
  25.         //Obiekt do losowania
  26.         private Random random = new Random();
  27.         //Obiekt umożliwiający losowanie
  28.      
  29.         //Tablice do Gwiazd
  30.         private int[] starX;
  31.         private int[] starY;
  32.         private int[] starRadius;
  33.        //Tablice do Gwiazd
  34.        
  35.        
  36.        
  37.         public Rysowanie() {
  38.             super(); //wywołanie konstruktowa
  39.             setPreferredSize(new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT)); //Rezerwowanie miejsca cos w tym stylu
  40.             createStarField(DEFAULT_WIDTH, DEFAULT_HEIGHT, MAX_STAR_RADIUS); //Tworzenie Gwiazd, ale nie ich rysowanie
  41.         }
  42.      
  43.  
  44.         //Tworzenie Gwiazd
  45.         private void createStarField(int width, int height, int maxRadius) {
  46.             // Tworzenie tablic
  47.             starX = new int[NUM_STARS];
  48.             starY = new int[NUM_STARS];
  49.             starRadius = new int[NUM_STARS];
  50.             //Tworzenie tablic
  51.             //Zapychanie ich randomowymi liczbami
  52.             for (int i = 0; i < NUM_STARS; i++) {
  53.                 starX[i] = random.nextInt(width);
  54.                 starY[i] = random.nextInt(height);
  55.                 starRadius[i] = random.nextInt(maxRadius);
  56.             }
  57.             //Zapychanie ich randomowymi liczbami
  58.         }
  59.         //Tworzenie Gwiazd
  60.      
  61.      
  62.         //Czarna przestrzeń
  63.         private void drawSpaceBackdrop(Graphics2D g2) {
  64.             g2.setColor(Color.BLACK); //Ustawiamy czarny kolor do malowania
  65.             g2.fillRect(0, 0, getWidth(), getHeight()); //Wypelniamy przestrzen
  66.      
  67.             g2.setColor(Color.WHITE); //ustawiamy bialy
  68.             for (int i = 0; i < NUM_STARS; i++) {
  69.                 g2.fillOval(starX[i], starY[i], starRadius[i], starRadius[i]);
  70.             //Wsadzanie gwiazd do przestrzeni
  71.             }
  72.            }
  73.         //Rysowanie czarnej przestrzeni
  74.      
  75.  
  76.         //Rysowanie Słońca
  77.         private void drawSun(Graphics2D g2) {
  78.             int sunRadius = (int) (SUN_RADIUS_PROPORTION * getWidth() );
  79.             GradientPaint sunColor = new GradientPaint(0, 0, Color.YELLOW, 0, sunRadius, Color.RED); //Tworzenie kolorku dla sloneczka
  80.             g2.setPaint(sunColor); //Ustawienie kolorku do malowania
  81.             g2.fillOval(-sunRadius/2, -sunRadius/2, sunRadius, sunRadius); //wypelnienie slonca
  82.         }
  83.         //Rysowanie słońca
  84.        
  85.         //Rysowanie Słońca
  86.         public void drawPlanet(Graphics2D g2) {
  87.             int sunRadius = (int) (SUN_RADIUS_PROPORTION * 0.5 * getWidth() );
  88.             GradientPaint sunColor = new GradientPaint(0, 0, Color.BLUE, 0, sunRadius, Color.GREEN); //Tworzenie kolorku dla sloneczka
  89.             g2.setPaint(sunColor); //Ustawienie kolorku do malowania
  90.             g2.fillOval(-sunRadius/2, -sunRadius/2, sunRadius, sunRadius); //wypelnienie slonca
  91.         }
  92.         //Rysowanie słońca
  93.      
  94.      
  95.      
  96.         //Rysowanie wszystkiego
  97.         public void paintComponent(Graphics g) {
  98.             Graphics2D g2 = (Graphics2D) g; //Ustawienie zmiennej
  99.             drawSpaceBackdrop(g2); //Czarna przestrzen
  100.             g2.translate(getWidth()/2, getHeight()/2);//Kordynaty gdzie ma sie pojawic x,y
  101.             drawSun(g2); //Slonce
  102.         }
  103.         //Rysowanie wstępne
  104.    
  105.      
  106.         //Odswiezenie obrazka
  107.         public void update(Observable o, Object arg) {
  108.             repaint();
  109.         }
  110.         //Odswiezenie obrazka    
  111.        
  112.      
  113.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement