Advertisement
Guest User

kolos

a guest
Jan 20th, 2020
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. //wariant 13
  2. package jpp;
  3.  
  4. import java.awt.Color;
  5. import java.awt.Dimension;
  6. import java.awt.EventQueue;
  7. import java.awt.Graphics;
  8. import java.awt.Polygon;
  9. import java.awt.Toolkit;
  10. import java.awt.event.ActionEvent;
  11. import java.awt.event.ActionListener;
  12.  
  13. import javax.swing.*;
  14.  
  15.  
  16. public class zaliczenie extends JFrame{
  17.  
  18. MyComponent komponent;
  19. int MAXN=100;
  20. int n=0;
  21. Timer timer;
  22. int alfa = 0;
  23. int [] xtab=new int[MAXN];
  24. int [] ytab=new int[MAXN];
  25. class MyComponent extends JComponent{
  26.  
  27. @Override
  28. protected void paintComponent(Graphics g) {
  29. int w=getWidth();
  30. int h=getHeight();
  31. int x=0,y=0;
  32. int a=w/2;
  33. int b=h/2;
  34. if(a<b)
  35. b=a;
  36. else
  37. a=b;
  38. int c=(int)Math.round(Math.PI*a/2.0);
  39. int obw=a+b+c;
  40.  
  41. g.drawLine(w/4, h/4, w/4+a, h/4);
  42. g.drawLine(w/4, h/4, w/4, h/4+a);
  43. g.drawArc(w/4-a, h/4-a, a*2, a*2, 270, 90);
  44.  
  45.  
  46. int na=MAXN*a/obw;
  47. int nb=MAXN*b/obw;
  48. int nc=MAXN-na-nb;
  49.  
  50. if(n<na){
  51. x=w/4+a*n/na;
  52. y=h/4;
  53. }
  54. else if(n<na+nc){
  55. double kat=Math.PI/2.0*(n-na)/nc;
  56. x=w/4+(int)Math.round(a*Math.cos(kat));
  57. y=h/4+(int)Math.round(a*Math.sin(kat));
  58. }else{
  59. x=w/4;
  60. y=h*3/4-b*(n-na-nc)/nb;
  61. }
  62. g.fillOval(x-6, y-6, 12, 12);
  63. g.setColor(Color.BLACK);
  64. super.paintComponent(g);
  65. }
  66.  
  67. }
  68. public zaliczenie(String string) {
  69. super(string);
  70. setDefaultCloseOperation(EXIT_ON_CLOSE);
  71. Toolkit kit=Toolkit.getDefaultToolkit();
  72. Dimension d=kit.getScreenSize();
  73. setBounds(d.width/4, d.height/4, d.width/2, d.height/2);
  74. add(komponent=new MyComponent());
  75. timer=new Timer(20,new ActionListener() {
  76.  
  77. @Override
  78. public void actionPerformed(ActionEvent e) {
  79. n++;
  80. if(n>=MAXN)
  81. n-=MAXN;
  82. komponent.repaint();
  83. }
  84. });
  85. timer.start();
  86. setVisible(true);
  87. }
  88.  
  89. public static void main(String[] args) {
  90. EventQueue.invokeLater(new Runnable() {
  91.  
  92. @Override
  93. public void run() {
  94. new zaliczenie("Wariant 13");
  95. }
  96. });
  97. }
  98.  
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement