import java.awt.image.*; import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class Pildiloomine5 extends Applet implements MouseListener, Runnable, AdjustmentListener{ int hx=75, hy=75; int pildilaius, pildikorgus; int pildinr=0; Scrollbar ootesb=new Scrollbar(Scrollbar.HORIZONTAL, 100, 10, 0, 500); Scrollbar lainepikkusesb=new Scrollbar(Scrollbar.HORIZONTAL, 20, 10, 1, 300); Scrollbar kaadriarvusb=new Scrollbar(Scrollbar.HORIZONTAL, 20, 3, 1, 50); Scrollbar heledusesb=new Scrollbar(Scrollbar.HORIZONTAL, 125, 10, 0, 255); Scrollbar kontrastsusesb=new Scrollbar(Scrollbar.HORIZONTAL, 100, 10, 0, 150); Canvas louend=new Canvas(){ public void paint(Graphics g){ joonista(g); } public void update(Graphics g){ paint(g); } }; Image pildid[]; double lainepikkus=20; boolean veel; int kaadritearv=15; public Pildiloomine5(){ louend.addMouseListener(this); new Thread(this).start(); Panel p1=new Panel(new GridLayout(5, 2)); p1.add(new Label("Aeglus:")); p1.add(ootesb); p1.add(new Label("Lainepikkus:")); p1.add(lainepikkusesb); p1.add(new Label("Kaadrite arv:")); p1.add(kaadriarvusb); p1.add(new Label("Heledus:")); p1.add(heledusesb); p1.add(new Label("Kontrastsus:")); p1.add(kontrastsusesb); setLayout(new BorderLayout()); add(p1, BorderLayout.SOUTH); add(louend, BorderLayout.CENTER); lainepikkusesb.addAdjustmentListener(this); kaadriarvusb.addAdjustmentListener(this); heledusesb.addAdjustmentListener(this); kontrastsusesb.addAdjustmentListener(this); } public Image looLainetus(int laius, int korgus, int kx, int ky, double lainepikkus, double faas){ int punktid[] = new int[laius*korgus]; int nr=0; for (int y = 0; y < korgus; y++){ for (int x = 0; x < laius; x++) { int punane=heledusesb.getValue()+(int)(kontrastsusesb.getValue()* Math.sin(kaugus(x, y, kx, ky)*2*Math.PI/lainepikkus+faas)); if(punane>255)punane=255; if(punane<0)punane=0; int sinine = heledusesb.getValue(); punktid[nr++] = (255<<24)|(punane << 16) | sinine; } } return createImage(new MemoryImageSource(laius, korgus, punktid, 0, laius)); } public Image[] looPildiseeria(int laius, int korgus, int kx, int ky, double lainepikkus, int kaadritearv){ Image[] pildikaadrid=new Image[kaadritearv]; for(int i=0; i=pildid.length)pildinr=0; } }.start(); } void kontrolliSuurust(){ if(pildilaius!=louend.getSize().width || pildikorgus!=louend.getSize().height){ hx=louend.getSize().width/2; hy=louend.getSize().height/2; arvutaPildid(); } } public void adjustmentValueChanged(AdjustmentEvent e){ arvutaPildid(); } public void run(){ veel=true; while(veel){ if(pildid!=null && ++pildinr>=pildid.length)pildinr=0; louend.paint(louend.getGraphics()); try{Thread.sleep(ootesb.getValue());}catch(Exception e){} } } static double kaugus(double x1, double y1, double x2, double y2){ double vahex=x2-x1; double vahey=y2-y1; return Math.sqrt(vahex*vahex+vahey*vahey); } public void joonista(Graphics g){ if(g==null)return; if(pildid!=null && pildinr