Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.EventQueue;
- import java.awt.Graphics;
- import java.awt.Polygon;
- import java.awt.Toolkit;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.*;
- public class Animek6 extends JFrame{
- MyComponent komponent;
- int MAXN=200;
- int n=0;
- int alfa=0;
- Timer timer;
- int [] xtab=new int[MAXN];
- int [] ytab=new int[MAXN];
- int D=20;
- class MyComponent extends JComponent{
- @Override
- protected void paintComponent(Graphics g) {
- int w=getWidth();
- int h=getHeight();
- int x=0,y=0;
- int x0=w/2;
- int y0=h/2;
- int R=((w<h)?w:h)*9/20;
- g.drawArc(x0-R, y0-R, 2*R, 2*R, 45, 180);
- int a=(int)Math.round(R*(2.0-Math.sqrt(2.0))/2.0);
- g.drawLine(x0+R-a,y0-R+a,x0-R+a,y0+R-a);
- g.drawLine(x0+R,y0,x0,y0);
- g.drawLine(x0,y0,x0,y0+R);
- g.drawArc(x0, y0, 2*R, 2*R, 90,90);
- int c=(int)Math.round(Math.PI/2.0*R);
- int obw=4*R+3*c;
- int nb=MAXN*R/obw;
- int nc=(MAXN-4*nb)/3;
- if(n<nb){
- }else if (n<nb*2){
- }else if(n<nb*2+nc*2){
- double kat=-Math.PI*0.75+Math.PI*(n-2*nb)/nc/2.0;
- x=(int)Math.round(x0-R*Math.cos(kat));
- y=(int)Math.round(y0+R*Math.sin(kat));
- }else if(n<nb*3+nc*2){
- double kat=-Math.PI*0.75+Math.PI*(n-2*nb)/nc/2.0;
- }else if(n<nb*4+nc*2){
- }else{
- }
- xtab[n]=x;
- ytab[n]=y;
- g.setColor(Color.RED);
- //for(int i=0;i<MAXN;i++){
- for(int i=n;i>n-10;i--){
- //g.setColor(ctab[i]?Color.RED:Color.GREEN);
- int q=(i>=0)?i:i+MAXN;
- g.fillOval(xtab[q]-4, ytab[q]-4, 8, 8);
- }
- g.setColor(Color.BLACK);
- super.paintComponent(g);
- }
- }
- public Animek6(String string) {
- super(string);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- Toolkit kit=Toolkit.getDefaultToolkit();
- Dimension d=kit.getScreenSize();
- setBounds(d.width/4, d.height/4, d.width/2, d.height/2);
- add(komponent=new MyComponent());
- timer=new Timer(20,new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- n++;
- if(n>=MAXN)
- n-=MAXN;
- alfa++;
- komponent.repaint();
- }
- });
- timer.start();
- setVisible(true);
- }
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable() {
- @Override
- public void run() {
- new Animek6("Animek 6");
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement