Advertisement
Guest User

Untitled

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