import java.applet.Applet; import java.awt.*; import javax.swing.*; import java.awt.event.*; import com.sun.j3d.utils.geometry.ColorCube; import javax.vecmath.*; import com.sun.j3d.utils.universe.SimpleUniverse; import javax.media.j3d.*; public class liikuvKuup extends Applet implements KeyListener { double x=0; double y=0; double z=0; double s=0.4; double xNurkV=0; double yNurkV=0; double zNurkV=0; TransformGroup liikumine; TransformGroup keereX; TransformGroup keereY; TransformGroup keereZ; public liikuvKuup() { setLayout(new BorderLayout()); Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); add(c, BorderLayout.CENTER); BranchGroup juur = new BranchGroup(); Transform3D liigu=new Transform3D(); liigu.setTranslation(new Vector3d(x, y, z)); liikumine=new TransformGroup(liigu); liikumine.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); Transform3D xNurk=new Transform3D(); Transform3D yNurk=new Transform3D(); Transform3D zNurk=new Transform3D(); keereX=new TransformGroup(xNurk); keereX.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); keereY=new TransformGroup(yNurk); keereY.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); keereZ=new TransformGroup(zNurk); keereZ.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); juur.addChild(liikumine); liikumine.addChild(keereX); keereX.addChild(keereY); keereY.addChild(keereZ); keereZ.addChild(new ColorCube(s)); juur.compile(); SimpleUniverse u = new SimpleUniverse(c); u.getViewingPlatform().setNominalViewingTransform(); u.addBranchGraph(juur); //new Thread(this).start(); c.addKeyListener(this); } public static void main(String[] args) { Frame f=new Frame("Liigutatav kuup"); f.add(new liikuvKuup()); f.setSize(700, 700); f.setVisible(true); } public void keyPressed(KeyEvent e) { System.out.print("Vajutati nuppu: "); if(e.getKeyCode()==KeyEvent.VK_LEFT) { System.out.println("VK_LEFT"); Transform3D t=new Transform3D(); t.rotY(yNurkV=yNurkV+0.1); keereY.setTransform(t); } if(e.getKeyCode()==KeyEvent.VK_RIGHT) { System.out.println("VK_RIGHT"); Transform3D t=new Transform3D(); t.rotY(yNurkV=yNurkV-0.1); keereY.setTransform(t); } if(e.getKeyCode()==KeyEvent.VK_UP) { System.out.println("VK_UP"); Transform3D t=new Transform3D(); t.rotX(xNurkV=xNurkV+0.1); keereX.setTransform(t); } if(e.getKeyCode()==KeyEvent.VK_DOWN) { System.out.println("VK_DOWN"); Transform3D t=new Transform3D(); t.rotX(xNurkV=xNurkV-0.1); keereX.setTransform(t); } if(e.getKeyCode()==KeyEvent.VK_NUMPAD4) { System.out.println("VK_NUMPAD4"); Transform3D t=new Transform3D(); t.setTranslation(new Vector3d(x=x-0.1, y, z)); liikumine.setTransform(t); } if(e.getKeyCode()==KeyEvent.VK_NUMPAD6) { System.out.println("VK_NUMPAD6"); Transform3D t=new Transform3D(); t.setTranslation(new Vector3d(x=x+0.1, y, z)); liikumine.setTransform(t); } if(e.getKeyCode()==KeyEvent.VK_NUMPAD8) { System.out.println("VK_NUMPAD8"); Transform3D t=new Transform3D(); t.setTranslation(new Vector3d(x, y=y+0.1, z)); liikumine.setTransform(t); } if(e.getKeyCode()==KeyEvent.VK_NUMPAD2) { System.out.println("VK_NUMPAD2"); Transform3D t=new Transform3D(); t.setTranslation(new Vector3d(x, y=y-0.1, z)); liikumine.setTransform(t); } if(e.getKeyCode()==KeyEvent.VK_A) { System.out.println("VK_A"); s=s+0.1; } } public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){} }