Advertisement
Guest User

1

a guest
Jan 21st, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. package test;
  2. import java.awt.Color;
  3. import java.awt.Dimension;
  4. import java.awt.EventQueue;
  5. import java.awt.Graphics;
  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 Test4 extends JFrame{
  14.  
  15. MyComponent komponent;
  16. int MAXN=200;
  17. int n=0;
  18. Timer timer;
  19. int alfa = 0;
  20. int [] xtab=new int[MAXN];
  21. int [] ytab=new int[MAXN];
  22.  
  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.  
  34. int x1=xKart(x0,R,Math.toRadians(alfa));
  35. int y1=yKart(y0,R,Math.toRadians(alfa));
  36. g.drawArc(x0-R, y0-R, 2*R, 2*R, 22-alfa, 315);
  37.  
  38. int x2=xKart(x0,R,Math.toRadians(alfa-22));
  39. int y2=yKart(y0,R,Math.toRadians(alfa-22));
  40. g.drawLine(x0, y0, x2, y2);
  41.  
  42. int x3=xKart(x0,R,Math.toRadians(alfa+22));
  43. int y3=yKart(y0,R,Math.toRadians(alfa+22));
  44. g.drawLine(x0, y0, x3, y3);
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. xtab[n]=x;
  53. ytab[n]=y;
  54. g.fillOval(x-6, y-6, 12, 12);
  55. g.setColor(Color.RED);
  56. int D=10;
  57. for(int i=n;i>n-D;i--){
  58. int q=(i>=0)?i:MAXN+i;
  59. g.fillOval(xtab[q]-4, ytab[q]-4, 8, 8);
  60. }
  61. g.setColor(Color.BLACK);
  62. super.paintComponent(g);
  63. }
  64. private int xKart(int x0, int r, double kat) {
  65. return (int)Math.round(x0+r*Math.cos(kat));
  66. }
  67. private int yKart(int y0, int r, double kat) {
  68. return (int)Math.round(y0+r*Math.sin(kat));
  69. }
  70.  
  71. }
  72. public Test4(String string) {
  73. super(string);
  74. setDefaultCloseOperation(EXIT_ON_CLOSE);
  75. Toolkit kit=Toolkit.getDefaultToolkit();
  76. Dimension d=kit.getScreenSize();
  77. setBounds(d.width/4, d.height/4, d.width/2, d.height/2);
  78. add(komponent=new MyComponent());
  79. timer=new Timer(20,new ActionListener() {
  80.  
  81. @Override
  82. public void actionPerformed(ActionEvent e) {
  83. n++;
  84. if(n>=MAXN)
  85. n-=MAXN;
  86. alfa++;
  87. komponent.repaint();
  88. }
  89. });
  90. timer.start();
  91. setVisible(true);
  92. }
  93.  
  94. public static void main(String[] args) {
  95. EventQueue.invokeLater(new Runnable() {
  96.  
  97. @Override
  98. public void run() {
  99. new Test4("Test4");
  100. }
  101. });
  102. }
  103.  
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement