Advertisement
daniv1

Untitled

Mar 31st, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.18 KB | None | 0 0
  1. import java.awt.BasicStroke;
  2. import java.awt.Color;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.Shape;
  6. import java.awt.event.WindowAdapter;
  7. import java.awt.event.WindowEvent;
  8. import java.awt.geom.Line2D;
  9. import java.awt.geom.Rectangle2D;
  10. import java.awt.*;
  11.  
  12. import javax.swing.JFrame;
  13. import javax.swing.JPanel;
  14.  
  15.  
  16. public class Igor {
  17.     //public Polygon poly;
  18.     JFrame frame;            
  19.     Figura figura;
  20.  
  21.     private int oneX = 100;
  22.     private int oneY = 200;
  23.  
  24.     private int dX = 4;
  25.     private int dY = 4;
  26.  
  27.     public static void main(String... args)
  28.     {
  29.         new Igor().go();
  30.     }
  31.  
  32.     void go()
  33.     {
  34.         frame = new JFrame("Test");
  35.         frame.addWindowListener(
  36.                   new WindowAdapter(){
  37.                       public void windowClosing(WindowEvent we){
  38.                       System.exit(0);
  39.                      }
  40.                     }
  41.                   );
  42.         figura = new Figura();
  43.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  44.        
  45.         //frame.setResizable(false);
  46.         frame.setSize(1920, 1080);
  47.         frame.add(figura);
  48.         frame.setVisible(true);
  49.        // moveIt();
  50.        // moveIt_1();
  51.        moveIt_2();
  52.         //тут можна викликати новий метод, а попередній закоментувати
  53.     }
  54.  
  55.     class Figura extends JPanel
  56.     {    
  57.         public Polygon poly;
  58.         public Polygon poly1;
  59.         public void paintComponent(Graphics g)
  60.         {
  61.             super.paintComponent(g);
  62.             Graphics2D graph = (Graphics2D)g;
  63.              graph.setStroke(new BasicStroke(1.0f));
  64.           //  g.setColor(Color.BLUE);
  65.           //  g.fillRect(0, 0, this.getWidth(), this.getHeight());
  66.          //   g.setColor(Color.RED);
  67.          //   g.fillRect(3, 3, this.getWidth() - 6, this.getHeight() - 6);
  68.          //   g.setColor(Color.WHITE);
  69.           //  g.fillRect(6, 6, this.getWidth() - 12, this.getHeight() - 12);
  70.              
  71.             //Line2D line = new Line2D.Double(oneX,oneY,oneX+300,oneY);
  72.            
  73.              int xPoly[] = {oneX+100,oneX+200, oneX+100, oneX};
  74.              int yPoly[] = {oneY , oneY+100 , oneY+200 ,oneY+100};
  75.              int xPoly1[] = {oneX+100,oneX+150, oneX+100, oneX+50};
  76.              int yPoly1[] = {oneY , oneY+50 , oneY+100 ,oneY+50};
  77.         //  Shape square1 = new Rectangle2D.Double(oneX, oneY,200,200);
  78.             //Shape square2 = new Rectangle2D.Double(oneX, oneY,100,100);
  79.             poly = new Polygon(xPoly, yPoly, xPoly.length);
  80.             poly1 = new Polygon(xPoly1, yPoly1, xPoly1.length);
  81.             graph.drawPolygon(poly);
  82.             //poly = new Polygon(xPoly, yPoly, xPoly.length);
  83.             graph.setColor(Color.red);
  84.             graph.fillPolygon(poly);
  85.             //graph.rotate(Math.toRadians(45));
  86.             //graph.draw(square1);
  87.             //graph.fill(square1);
  88.             graph.setColor(Color.white);
  89.             graph.drawPolygon(poly1);
  90.            
  91.             graph.fillPolygon(poly1);
  92.             //graph.draw(square2);
  93.             //graph.fill(square2);
  94.            
  95.        //     graph.setStroke(new BasicStroke(1.0f));
  96.            
  97.           //  graph.draw(line);
  98.            
  99.             //graph.rotate(0.7);
  100.             //graph.fillRect(oneX, oneY, 150, 150);
  101.         }
  102.     }
  103.     private void moveIt_1()
  104.     {
  105.         while (true)
  106.         {
  107.             oneX = oneX + dX;
  108.          
  109.            
  110.             //TODO change magical number
  111.             if (oneX + dX < 0 || oneX + dX > 1700) {
  112.                 oneX = 0;
  113.                 dX = 0;
  114.             }
  115.            if (dX == 0) {
  116.                
  117.                 oneY = oneY + dY;
  118.             }
  119.             try
  120.             {
  121.                 Thread.sleep(1);
  122.             }
  123.             catch (Exception e)
  124.             {
  125.                 e.printStackTrace();
  126.             }
  127.             frame.repaint();
  128.         }
  129.     }
  130.     private void moveIt_2()
  131.     {
  132.         while (true)
  133.         {
  134.            // oneX = (int)(200*Math.cos(Math.toRadians(oneX )))  + dX;
  135.             oneX +=dX;
  136.             oneY = (int)(200*Math.cos(Math.toRadians(oneY))) + dY + 300;
  137.             // (oneX,Math.cos(oneY)+300,oneX+200,600*Math.cos(oneY));
  138.             //TODO change magical number
  139.             if (oneX + dX < 0 || oneX + dX > 1500) {
  140.                 dX = -dX;
  141.             }
  142.             if (oneY + dY < 0 || oneY + dY > 900) {
  143.                 dY = -dY;
  144.             }
  145.             try
  146.             {
  147.                 Thread.sleep(60);
  148.             }
  149.             catch (Exception e)
  150.             {
  151.                 e.printStackTrace();
  152.             }
  153.             frame.repaint();
  154.         }
  155.     }
  156.     private void moveIt()
  157.     {
  158.         while (true)
  159.         {
  160.             oneX = oneX + dX;
  161.            //oneY = oneY + dY;
  162.            
  163.             //TODO change magical number
  164.             if (oneX + dX < 0 || oneX + dX > 1400) {
  165.                 dX = -dX;
  166.             }
  167.             //if (oneY + dY < 0 || oneY + dY > 1000) {
  168.               //  dY = -dY;
  169.             //}
  170.             try
  171.             {
  172.                 Thread.sleep(5);
  173.             }
  174.             catch (Exception e)
  175.             {
  176.                 e.printStackTrace();
  177.             }
  178.             frame.repaint();
  179.         }
  180.     }
  181.    
  182.  
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement