import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class Maatriks4 extends Applet implements AdjustmentListener{ Scrollbar nurgasb=new Scrollbar(Scrollbar.HORIZONTAL, 314, 10, 0, 628); Scrollbar suurendusesb=new Scrollbar(Scrollbar.HORIZONTAL, 110, 10, 0, 200); Maatriks muutus; Maatriks asukoht=Maatriks.XY(30, 10); int keskx=150, kesky=150; public Maatriks4(){ Panel p1=new Panel(new GridLayout(2, 2)); p1.add(new Label("Nurk:")); p1.add(nurgasb); p1.add(new Label("Suurendus x:")); p1.add(suurendusesb); nurgasb.addAdjustmentListener(this); suurendusesb.addAdjustmentListener(this); setLayout(new BorderLayout()); add(p1, BorderLayout.SOUTH); arvutaMuutus(); } void arvutaMuutus(){ double nurk=(nurgasb.getValue()-314)/100.0; Maatriks nurgam=new Maatriks( Math.cos(nurk), Math.sin(nurk), -Math.sin(nurk), Math.cos(nurk) ); double suurendus=(suurendusesb.getValue()-100)/10.0; Maatriks suurendusem=new Maatriks( suurendus, 0, 0, 1 ); muutus=nurgam.korruta(suurendusem); //enne keerab, siis suurendab // muutus=suurendusem.korruta(nurgam); //enne suurendab, siis keerab repaint(); } public void joonistaTeljed(Graphics g){ g.drawLine(keskx, 0, keskx, 2*kesky); g.drawLine(0, kesky, 2*keskx, kesky); } public void joonistaKujund(Graphics g, int kx, int ky){ g.drawOval(keskx+kx-5, kesky-ky-5, 10, 10); } public void paint(Graphics g){ joonistaTeljed(g); joonistaKujund(g, asukoht.X(), asukoht.Y()); Maatriks uuskoht=asukoht.korruta(muutus); g.setColor(Color.blue); joonistaKujund(g, uuskoht.X(), uuskoht.Y()); } public void adjustmentValueChanged(AdjustmentEvent e){ arvutaMuutus(); } public static void main(String argumendid[]){ Frame f=new Frame(); f.add(new Maatriks4()); f.setSize(300, 300); f.setVisible(true); } }