Advertisement
Guest User

Untitled

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