Advertisement
Guest User

Untitled

a guest
Dec 13th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. public class Lab0902 {
  4.  
  5. public static void main(String args[])
  6. {
  7. GfxApp gfx = new GfxApp();
  8. gfx.setSize(900,700);
  9. gfx.addWindowListener(new WindowAdapter() {public void
  10. windowClosing(WindowEvent e) {System.exit(0);}});
  11. gfx.show();
  12. }
  13. }
  14. class GfxApp extends Frame
  15. {
  16. public void paint(Graphics g)
  17. {
  18. Circle circle = new Circle(30, 10, 10, 1);
  19.  
  20. for(int K = 0; K < 1000; K++)
  21. {
  22. circle.drawCircle(g);
  23.  
  24. }
  25. }
  26. }
  27.  
  28. class Circle
  29. {
  30. private int topleftX;
  31. private int topleftY;
  32.  
  33. private int incX;
  34. private int incY;
  35.  
  36. private boolean addX;
  37. private boolean addY;
  38.  
  39. private int size;
  40.  
  41. private double timeDelay;
  42.  
  43.  
  44. public Circle(int size, int incX, int incY, double timeDelay)
  45. {
  46. this.size = size;
  47. this.incX = incX;
  48. this.incY = incY;
  49. this.timeDelay = timeDelay;
  50. }
  51.  
  52. private void delay(double d)
  53. {
  54. long beginDelay = System.currentTimeMillis();
  55. long stopDelay = 0;
  56. while (stopDelay - beginDelay < d)
  57. {
  58. stopDelay = System.currentTimeMillis();
  59. }
  60. //for (double k = 1; k < d; k+=0.001);
  61. }
  62.  
  63. public void drawCircle(Graphics g)
  64. {
  65. g.setColor(Color.blue);
  66. settlX();
  67. settlY();
  68. g.drawOval(topleftX, topleftY, size, size);
  69. delay(100);
  70. }
  71.  
  72. public void settlX()
  73. {
  74. hitEdge();
  75. topleftX += incX;
  76. }
  77.  
  78. public void settlY()
  79. {
  80. hitEdge();
  81. topleftY += incY;
  82. }
  83.  
  84. public void newData()
  85. {
  86. if(topleftX <= 0 || topleftX >= 870)
  87. {
  88. incX = (int)(Math.random() * 8) + 5;
  89. }
  90.  
  91. if(topleftY <= 0 || topleftY >= 670)
  92. {
  93. incY = (int)(Math.random() * 8) + 5;
  94. }
  95.  
  96. if(topleftY >= 670) { incY *= -1;}
  97.  
  98. if(topleftX >= 870) { incX *= -1;}
  99. }
  100.  
  101. public void hitEdge()
  102. {
  103. addX = false;
  104. addY = false;
  105.  
  106. if(topleftX <= 0 || topleftX >= 870) { addX = true;}
  107.  
  108. if(topleftY <= 0 || topleftY >= 670) { addY = true;}
  109.  
  110. if(addX == true || addY == true) {newData();}
  111.  
  112. }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement