import java.awt.*; import java.applet.*; import java.awt.event.*; import java.awt.geom.AffineTransform; public class Liikumine6 extends Applet implements ActionListener{ TextField tf=new TextField(5); TextField af=new TextField(5); Label vasak=new Label("Vasak"); Label parem=new Label("Parem"); public Liikumine6(){ add(vasak); add(tf); add(parem); add(af); tf.addActionListener(this); af.addActionListener(this); } public void actionPerformed(ActionEvent e){ Graphics g=getGraphics(); int nurkadearv=Integer.parseInt(tf.getText()); int nurkadearv2=Integer.parseInt(af.getText()); g.setColor(Color.white); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(Color.black); int korgus=getSize().height; int laius=getSize().width; int korgus2=getSize().height; int laius2=getSize().width; double nurgavahe=2*Math.PI/(double)nurkadearv; // paneb hulktahuka kokku double nurgavahe2=2*Math.PI/(double)nurkadearv2; int raadius=Math.min(korgus, laius)/8; // hulktahuka diameeter int keskx2=laius2/2; int kesky2=korgus2/2; int vanax2=keskx2; int vanay2=kesky2+raadius; int uusx2, uusy2; int keskx=laius/2+2*raadius; int kesky=korgus/2; int vanax=keskx; int vanay=kesky+raadius; int uusx, uusy; // 1 try tsükkel Graphics2D g3=(Graphics2D)g; Graphics2D g2=(Graphics2D)g; try{ for(int b=10;b>0;b++){ g3.setTransform(AffineTransform.getRotateInstance(b*(Math.PI/2), laius2/2, korgus2/2)); for(int i=1; i<=nurkadearv2; i++){ uusx2=keskx2+(int)(raadius*Math.sin(i*nurgavahe2)); uusy2=kesky2+(int)(raadius*Math.cos(i*nurgavahe2)); int uusx3=keskx2+(int)((raadius+20)*Math.sin(i*nurgavahe2)); int uusy3=kesky2+(int)((raadius+20)*Math.cos(i*nurgavahe2)); g3.drawLine(uusx3, uusy3, uusx2, uusy2); vanax2=uusx2; vanay2=uusy2; } g2.setTransform(AffineTransform.getRotateInstance(-b*(Math.PI/2), laius/2+2*raadius, korgus/2)); for(int i=1; i<=nurkadearv; i++){ uusx=keskx+(int)(raadius*Math.sin(i*nurgavahe)); uusy=kesky+(int)(raadius*Math.cos(i*nurgavahe)); int uusx4=keskx+(int)((raadius+20)*Math.sin(i*nurgavahe)); int uusy4=kesky+(int)((raadius+20)*Math.cos(i*nurgavahe)); g2.drawLine(uusx4, uusy4, uusx, uusy); vanax=uusx; vanay=uusy; } Thread.sleep(100); g3.setColor(Color.white); g3.fillRect(20, 20, 40, 20); g2.setColor(Color.white); g2.fillRect(20, 20, 40, 20); g3.setTransform(AffineTransform.getRotateInstance(b*(Math.PI/2), laius2/2, korgus2/2)); for(int i=1; i<=nurkadearv2; i++){ uusx2=keskx2+(int)(raadius*Math.sin(i*nurgavahe2)); uusy2=kesky2+(int)(raadius*Math.cos(i*nurgavahe2)); int uusx3=keskx2+(int)((raadius+20)*Math.sin(i*nurgavahe2)); int uusy3=kesky2+(int)((raadius+20)*Math.cos(i*nurgavahe2)); g3.drawLine(uusx3, uusy3, uusx2, uusy2); vanax2=uusx2; vanay2=uusy2; } g2.setTransform(AffineTransform.getRotateInstance(-b*(Math.PI/2), laius/2+2*raadius, korgus/2)); for(int i=1; i<=nurkadearv; i++){ uusx=keskx+(int)(raadius*Math.sin(i*nurgavahe)); uusy=kesky+(int)(raadius*Math.cos(i*nurgavahe)); int uusx4=keskx+(int)((raadius+20)*Math.sin(i*nurgavahe)); int uusy4=kesky+(int)((raadius+20)*Math.cos(i*nurgavahe)); g2.drawLine(uusx4, uusy4, uusx, uusy); vanax=uusx; vanay=uusy; } g3.setColor(Color.black); g2.setColor(Color.black); } }catch(Exception probleem){ System.out.println(probleem); } } public static void main(String[] argumendid){ Frame f=new Frame(); f.add(new Liikumine6()); f.setSize(300, 300); f.setVisible(true); } }