import java.applet.Applet; import java.awt.*; //tekstiväljad, nupp import java.awt.event.*; //nupuvajutus public class Ratas extends Applet implements ActionListener{ public static int algX=10; public static int algY=300; //Ekraanipunktides public static int korgus=150; //cm public static int laius=150; public int osaLaius; public int joonteArv; public int lugeja; public int nimetaja; double algnurk=0; public TextField textlugeja=new TextField("0", 3); public TextField textnimetaja=new TextField("12", 3); public Button nupp=new Button("Veereta"); GridLayout grid=new GridLayout(2,2);//nupud üksteise peale public static final double PI= Math.PI; public static void main(String[] argumendid){ Frame f=new Frame("Veerev ratas"); f.add(new Ratas()); f.setSize(800, 600); f.setVisible(true); } public Ratas(){ Panel p = new Panel(); p.setLayout(grid); add(p, BorderLayout.NORTH); p.add(textlugeja); p.add(nupp); p.add(textnimetaja); nupp.addActionListener(this); } public void paint(Graphics g){ lugeja=Integer.parseInt(textlugeja.getText()); nimetaja=Integer.parseInt(textnimetaja.getText()); g.setColor(Color.blue); g.drawString("Kiirus", 245,25); g.drawString("Kodarate arv", 240,50); if (lugeja==0) g.drawString("Ratas ei veere, kuna kiirus on 0!",100,100); else{ fillVeerevRing(g); drawRing(g); fillRing(g); } repaint(); } public void drawRing(Graphics g){ g.setColor(Color.black); g.drawOval(algX+180, algY-150, korgus,laius); } public void fillRing(Graphics g){ g.setColor(Color.black); if(lugeja!=nimetaja){ double nurk=2*PI/nimetaja; for(int i=1;i<=nimetaja;i++){ int uusKoordX=(int)(algX+255+75*Math.sin(nurk*i)); int uusKoordY=(int)(algY-75+75*Math.cos(nurk*i)); g.drawLine(algX+255, algY-75, uusKoordX, uusKoordY); } } } public void fillVeerevRing(Graphics g){ g.setColor(Color.black); double nurk=2*PI/nimetaja; algnurk=algnurk+0.01; for(int i=0;i<=150*PI;i++){ int uusKoordX=(int)(algX+255+75*Math.sin(lugeja*(nurk+PI*i/nimetaja+PI/50+algnurk))); int uusKoordY=(int)(algY-75+75*Math.cos(lugeja*(nurk+PI*i/nimetaja+PI/50+algnurk))); g.drawLine(algX+255, algY-75, uusKoordX, uusKoordY); } } public void actionPerformed(ActionEvent e){ } }