Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 19.79 KB | None | 0 0
  1. package RamieRobota;
  2. import java.applet.Applet;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import com.sun.j3d.utils.applet.MainFrame;
  6. import com.sun.j3d.utils.behaviors.vp.OrbitBehavior;
  7. import com.sun.j3d.utils.geometry.Box;
  8. import com.sun.j3d.utils.geometry.Cylinder;
  9. import com.sun.j3d.utils.geometry.Sphere;
  10. import com.sun.j3d.utils.universe.*;
  11. import javax.media.j3d.*;
  12. import javax.vecmath.*;
  13. import com.sun.j3d.utils.image.TextureLoader;
  14. import static java.lang.Math.cos;
  15. import static java.lang.Math.sin;
  16.  
  17. public class Ramie_Robota extends Applet implements  KeyListener {
  18.  
  19. private TransformGroup objTrans2;
  20. private TransformGroup objTrans3;
  21. private TransformGroup objTrans4;
  22. private TransformGroup objTrans5;
  23. private TransformGroup objTrans6;
  24.  
  25. private Transform3D pos3 = new Transform3D();
  26. private Transform3D p_chwytak = new Transform3D();
  27. private Transform3D p_chwytak1 = new Transform3D();
  28. private Transform3D p_chwytak2 = new Transform3D();
  29. private Transform3D obrot = new Transform3D();
  30.  
  31. private Matrix4d macierz = new Matrix4d();
  32. private Matrix4d macierz2 = new Matrix4d();
  33.  
  34. private float xloc=0.2f;
  35. private float yloc=0.0f;
  36. private float kat=0.0f;
  37. private float kx=0.0f;
  38.  
  39. public BranchGroup createSceneGraph() {
  40.  
  41.     BranchGroup objRoot = new BranchGroup();
  42.    
  43.     //stojak
  44.     Appearance  wygladCylindra = new Appearance();
  45.     wygladCylindra.setColoringAttributes(new ColoringAttributes(0.5f,0.5f,0.9f,ColoringAttributes.NICEST));
  46.     Cylinder cylinder = new Cylinder(0.1f, 0.9f,Cylinder.GENERATE_NORMALS| Cylinder.GENERATE_TEXTURE_COORDS, wygladCylindra);
  47.     objTrans2 = new TransformGroup();
  48.     objTrans2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
  49.     Transform3D pos2 = new Transform3D();
  50.     pos2.setTranslation(new Vector3f(0.0f,0.0f,0.0f));
  51.     objTrans2.setTransform(pos2);
  52.     objTrans2.addChild(cylinder);
  53.     objRoot.addChild(objTrans2);
  54.    
  55.     //podstawa
  56.     Appearance  wygladRamie = new Appearance();
  57.     wygladRamie.setColoringAttributes(new ColoringAttributes(0.5f,0.9f,0.5f,ColoringAttributes.NICEST));
  58.     Box ramie = new Box(0.3f, 0.1f, 0.1f,Cylinder.GENERATE_NORMALS| Cylinder.GENERATE_TEXTURE_COORDS, wygladRamie);
  59.     objTrans3 = new TransformGroup();
  60.     objTrans3.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
  61.     pos3.set(new Vector3f(0.1f,0.0f,0.0f));
  62.     objTrans3.setTransform(pos3);
  63.     objTrans3.addChild(ramie);
  64.     objRoot.addChild(objTrans3);
  65.    
  66.     // ramie chwytaka wysowane
  67.     Appearance  wygladChwytak = new Appearance();
  68.     wygladChwytak.setColoringAttributes(new ColoringAttributes(0.9f,0.5f,0.5f,ColoringAttributes.NICEST));
  69.     Box chwytak = new Box(0.3f, 0.05f, 0.05f,Cylinder.GENERATE_NORMALS| Cylinder.GENERATE_TEXTURE_COORDS, wygladChwytak);
  70.     objTrans4= new TransformGroup();
  71.     objTrans4.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
  72.     p_chwytak.set(new Vector3f(0.2f,0.0f,0.0f));
  73.     objTrans4.setTransform(p_chwytak);
  74.     objTrans4.addChild(chwytak);
  75.     objRoot.addChild(objTrans4);
  76.      
  77.     // palce chwytaka czesc pierwsza (gorna)
  78.     Box chwytak1 = new Box(0.05f, 0.025f, 0.04f,Cylinder.GENERATE_NORMALS| Cylinder.GENERATE_TEXTURE_COORDS, wygladChwytak);  
  79.     objTrans5 = new TransformGroup();
  80.     objTrans5.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
  81.     p_chwytak1.set(new Vector3f(0.5f,0.05f,0.0f));
  82.     objTrans5.setTransform(p_chwytak1);
  83.     objTrans5.addChild(chwytak1);
  84.     objRoot.addChild(objTrans5);  
  85.      
  86.     // palce chwytaka czesc druga(dolna)
  87.     Box chwytak2 = new Box(0.05f, 0.025f, 0.04f,Cylinder.GENERATE_NORMALS| Cylinder.GENERATE_TEXTURE_COORDS, wygladChwytak);
  88.     objTrans6 = new TransformGroup();
  89.     objTrans6.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
  90.     p_chwytak2.set(new Vector3f(0.5f,-0.05f,0.0f));
  91.     objTrans6.setTransform(p_chwytak2);
  92.     objTrans6.addChild(chwytak2);
  93.     objRoot.addChild(objTrans6);
  94.    
  95.     // podloga i sciany
  96.     int i;
  97.     Point3f[]  wspolrzedne = new Point3f[4];
  98.     Point2f[]  tex_coords = new Point2f[4];
  99.     for(i = 0; i< 4; i++){
  100.         wspolrzedne[i] = new Point3f();
  101.         tex_coords[i] = new Point2f();
  102.     }
  103.         wspolrzedne[0].y = -0.45f;
  104.         wspolrzedne[1].y = -0.45f;
  105.         wspolrzedne[2].y = -0.45f;
  106.         wspolrzedne[3].y = -0.45f;
  107.  
  108.         wspolrzedne[0].x = 1.5f;
  109.         wspolrzedne[1].x = 1.5f;
  110.         wspolrzedne[2].x = -1.5f;
  111.         wspolrzedne[3].x = -1.5f;
  112.  
  113.         wspolrzedne[0].z = 1.5f;
  114.         wspolrzedne[1].z = -1.5f;
  115.         wspolrzedne[2].z = -1.5f;
  116.         wspolrzedne[3].z = 1.5f;
  117.  
  118.         // tekstury
  119.         tex_coords[0].x = 0.0f;
  120.         tex_coords[0].y = 0.0f;
  121.  
  122.         tex_coords[1].x = 1.0f;
  123.         tex_coords[1].y = 0.0f;
  124.  
  125.         tex_coords[2].x = 0.0f;
  126.         tex_coords[2].y = 1.0f;
  127.  
  128.         tex_coords[3].x = 1.0f;
  129.         tex_coords[3].y = 1.0f;
  130.        
  131.  
  132.     Appearance wyglad_ziemii = new Appearance();
  133.        
  134.  
  135.     QuadArray podloga = new QuadArray(4, GeometryArray.COORDINATES|GeometryArray.TEXTURE_COORDINATE_2);
  136.      
  137.  
  138.     podloga.setCoordinates(0,wspolrzedne);
  139.    
  140.  
  141.     podloga.setTextureCoordinates(0, tex_coords);
  142.    
  143.  
  144.     Shape3D podstawka = new Shape3D(podloga);
  145.     Shape3D podstawka2 = new Shape3D(podloga);
  146.    
  147.     podstawka2.setAppearance(wyglad_ziemii);
  148.        
  149.         Transform3D  p_ziemia   = new Transform3D();
  150.         p_ziemia.set(new Vector3f(0.0f,-0.9501f,0.0f));
  151.         Transform3D  tmp_rot      = new Transform3D();
  152.         tmp_rot.rotZ(Math.PI);
  153.  
  154.         p_ziemia.mul(tmp_rot);
  155.         TransformGroup transformacja_c = new TransformGroup(p_ziemia);
  156.  
  157.         transformacja_c.addChild(podstawka2);
  158.  
  159.    
  160.  
  161.     objRoot.addChild(podstawka);
  162.     objRoot.addChild(transformacja_c);
  163.    
  164.  
  165.     podstawka.setAppearance(wyglad_ziemii);
  166.    
  167.     // tlo z boxa
  168.     Appearance  wygladtla = new Appearance();
  169.     Sphere tlo = new Sphere(10f,Sphere.GENERATE_NORMALS_INWARD|Sphere.GENERATE_TEXTURE_COORDS ,200, wygladtla);
  170.     objRoot.addChild(tlo);
  171.    
  172.        
  173.     BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
  174.  
  175.     Color3f light1Color = new Color3f(1.0f, 0.0f, 0.2f);
  176.  
  177.     Vector3f light1Direction = new Vector3f(4.0f, -7.0f, -12.0f);
  178.  
  179.     DirectionalLight light1 = new DirectionalLight(light1Color, light1Direction);
  180.  
  181.     light1.setInfluencingBounds(bounds);
  182.  
  183.     objRoot.addChild(light1);
  184.  
  185.     Color3f ambientColor = new Color3f(0.0f, 0.0f, 1.0f);
  186.  
  187.     AmbientLight ambientLightNode = new AmbientLight(ambientColor);
  188.  
  189.     ambientLightNode.setInfluencingBounds(bounds);
  190.  
  191.     objRoot.addChild(ambientLightNode);
  192.    
  193.     TextureLoader loader = new TextureLoader("robot.jpg",null);  // tekstura robota
  194.     TextureLoader loader1 = new TextureLoader("material1.jpg",null);  // tekstura tla
  195.     TextureLoader loader2 = new TextureLoader("podloga.tif",null); // tekstura podlogi
  196.    
  197.     ImageComponent2D image = loader.getImage();
  198.     ImageComponent2D image1 = loader1.getImage();
  199.     ImageComponent2D image2 = loader2.getImage();
  200.    
  201.     Texture2D robot = new Texture2D(Texture.BASE_LEVEL, Texture.RGBA,image.getWidth(), image.getHeight());
  202.     Texture2D material1 = new Texture2D(Texture.BASE_LEVEL, Texture.RGBA,image1.getWidth(), image1.getHeight());
  203.     Texture2D material2 = new Texture2D(Texture.BASE_LEVEL, Texture.RGBA,image2.getWidth(), image2.getHeight());
  204.    
  205.     robot.setImage(0, image);
  206.     robot.setBoundaryModeS(Texture.WRAP);
  207.     robot.setBoundaryModeT(Texture.WRAP);
  208.    
  209.     material1.setImage(0, image1);
  210.     material1.setBoundaryModeS(Texture.WRAP);
  211.     material1.setBoundaryModeT(Texture.WRAP);
  212.    
  213.     material2.setImage(0, image2);
  214.     material2.setBoundaryModeS(Texture.WRAP);
  215.     material2.setBoundaryModeT(Texture.WRAP);
  216.    
  217.     wygladCylindra.setTexture(robot);  // robot
  218.     wygladRamie.setTexture(robot);   // robot
  219.     wygladChwytak.setTexture(robot);  // robot
  220.     wyglad_ziemii.setTexture(material2);  // podloga
  221.     wygladtla.setTexture(material1);  // tlo
  222.    
  223.    
  224.    
  225.      
  226.     return objRoot;
  227. }
  228.  
  229. public Ramie_Robota() {
  230.  
  231.     setLayout(new BorderLayout());
  232.  
  233.     GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
  234.  
  235.     Canvas3D c = new Canvas3D(config);
  236.  
  237.     add("Center", c);
  238.  
  239.     c.addKeyListener(this);
  240.  
  241.     BranchGroup scene = createSceneGraph();
  242.  
  243.     SimpleUniverse u = new SimpleUniverse(c);
  244.    
  245.     Transform3D przesuniecie_obserwatora = new Transform3D();                                    // to dodaje obserwatora
  246.  
  247.     przesuniecie_obserwatora.set(new Vector3f(0.0f,0.4f,4.0f));
  248.     u.getViewingPlatform().getViewPlatformTransform().setTransform(przesuniecie_obserwatora);
  249.  
  250.     OrbitBehavior orbit = new OrbitBehavior(c,
  251.     OrbitBehavior.REVERSE_ROTATE);
  252.         orbit.setSchedulingBounds(new BoundingSphere());
  253.         u.getViewingPlatform().setViewPlatformBehavior(orbit);
  254.  
  255.         u.addBranchGraph(scene);
  256.  
  257. }
  258.  
  259. public void keyPressed(KeyEvent e) {
  260.    
  261.     if (e.getKeyChar()=='d'){
  262.         if(xloc<0.69)
  263.             xloc=xloc+0.01f;
  264.        
  265.         p_chwytak.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  266.         p_chwytak.get(macierz2);
  267.         macierz2.m03=(xloc)*cos(kx)+macierz2.m23*sin(kx);
  268.         macierz2.m13=yloc;
  269.         macierz2.m23=(-xloc*sin(kx))+macierz2.m23*cos(kx);
  270.         p_chwytak.setTranslation(new Vector3d(0.0f,0.0f,0.0f));  
  271.         p_chwytak.get(macierz);
  272.         p_chwytak.setTranslation(new Vector3d(macierz2.m03+macierz.m03,macierz2.m13+macierz.m13,macierz2.m23+macierz.m23));
  273.         objTrans4.setTransform(p_chwytak);
  274.        
  275.         p_chwytak1.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  276.         p_chwytak1.get(macierz2);
  277.         macierz2.m03=(xloc+0.3f)*cos(kx)+macierz2.m23*sin(kx);
  278.         macierz2.m13=yloc;
  279.         macierz2.m23=(-(xloc+0.3f)*sin(kx))+macierz2.m23*cos(kx);
  280.         p_chwytak1.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  281.         p_chwytak1.get(macierz);
  282.         p_chwytak1.setTranslation(new Vector3d(macierz2.m03+macierz.m03,macierz2.m13+macierz.m13+0.05f,macierz2.m23+macierz.m23));
  283.         objTrans5.setTransform(p_chwytak1);
  284.        
  285.         p_chwytak2.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  286.         p_chwytak2.get(macierz2);
  287.         macierz2.m03=(xloc+0.3f)*cos(kx)+macierz2.m23*sin(kx);
  288.         macierz2.m13=yloc;
  289.         macierz2.m23=(-(xloc+0.3f)*sin(kx))+macierz2.m23*cos(kx);
  290.         p_chwytak2.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  291.         p_chwytak2.get(macierz);
  292.         p_chwytak2.setTranslation(new Vector3d(macierz2.m03+macierz.m03,macierz2.m13+macierz.m13-0.05f,macierz2.m23+macierz.m23));
  293.         objTrans6.setTransform(p_chwytak2);      
  294.     }
  295.     if (e.getKeyChar()=='a') {
  296.         if(xloc>0.2)
  297.             xloc=xloc-0.01f;
  298.        
  299.         p_chwytak.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  300.         p_chwytak.get(macierz2);
  301.         macierz2.m03=(xloc)*cos(kx)+macierz2.m23*sin(kx);
  302.         macierz2.m13=yloc;
  303.         macierz2.m23=(-xloc*sin(kx))+macierz2.m23*cos(kx);
  304.         p_chwytak.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  305.         p_chwytak.get(macierz);
  306.         p_chwytak.setTranslation(new Vector3d(macierz2.m03+macierz.m03,macierz2.m13+macierz.m13,macierz2.m23+macierz.m23));
  307.         objTrans4.setTransform(p_chwytak);
  308.  
  309.         p_chwytak1.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  310.         p_chwytak1.get(macierz2);
  311.         macierz2.m03=(xloc+0.3f)*cos(kx)+macierz2.m23*sin(kx);
  312.         macierz2.m13=yloc;
  313.         macierz2.m23=(-(xloc+0.3f)*sin(kx))+macierz2.m23*cos(kx);
  314.         p_chwytak1.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  315.         p_chwytak1.get(macierz);
  316.         p_chwytak1.setTranslation(new Vector3d(macierz2.m03+macierz.m03,macierz2.m13+macierz.m13+0.05f,macierz2.m23+macierz.m23));
  317.         objTrans5.setTransform(p_chwytak1);
  318.      
  319.         p_chwytak2.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  320.         p_chwytak2.get(macierz2);
  321.         macierz2.m03=(xloc+0.3f)*cos(kx)+macierz2.m23*sin(kx);
  322.         macierz2.m13=yloc;
  323.         macierz2.m23=(-(xloc+0.3f)*sin(kx))+macierz2.m23*cos(kx);
  324.         p_chwytak2.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  325.         p_chwytak2.get(macierz);
  326.         p_chwytak2.setTranslation(new Vector3d(macierz2.m03+macierz.m03,macierz2.m13+macierz.m13-0.05f,macierz2.m23+macierz.m23));
  327.         objTrans6.setTransform(p_chwytak2);
  328.     }
  329.     if (e.getKeyChar()=='w'){
  330.         if(yloc<0.25)
  331.             yloc=yloc+0.01f;
  332.        
  333.         kat=0;
  334.        
  335.         p_chwytak.get(macierz);
  336.         macierz2.m03=macierz.m03*cos(kat)+macierz.m23*sin(kat);
  337.         macierz2.m13=yloc;
  338.         macierz2.m23=-macierz.m03*sin(kat)+macierz.m23*cos(kat);
  339.         p_chwytak.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  340.         p_chwytak.setTranslation(new Vector3d(macierz2.m03,macierz2.m13,macierz2.m23));
  341.         objTrans4.setTransform(p_chwytak);
  342.      
  343.         p_chwytak1.get(macierz);
  344.         macierz2.m03=macierz.m03*cos(kat)+macierz.m23*sin(kat);
  345.         macierz2.m13=yloc;
  346.         macierz2.m23=-macierz.m03*sin(kat)+macierz.m23*cos(kat);
  347.         p_chwytak1.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  348.         p_chwytak1.setTranslation(new Vector3d(macierz2.m03,macierz2.m13+0.05f,macierz2.m23));
  349.         objTrans5.setTransform(p_chwytak1);
  350.      
  351.         p_chwytak2.get(macierz);
  352.         macierz2.m03=macierz.m03*cos(kat)+macierz.m23*sin(kat);
  353.         macierz2.m13=yloc;
  354.         macierz2.m23=-macierz.m03*sin(kat)+macierz.m23*cos(kat);
  355.         p_chwytak2.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  356.         p_chwytak2.setTranslation(new Vector3d(macierz2.m03,macierz2.m13-0.05f,macierz2.m23));
  357.         objTrans6.setTransform(p_chwytak2);
  358.      
  359.         pos3.get(macierz);
  360.         macierz2.m03=macierz.m03*cos(kat)+macierz.m23*sin(kat);
  361.         macierz2.m13=yloc;
  362.         macierz2.m23=-macierz.m03*sin(kat)+macierz.m23*cos(kat);
  363.         pos3.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  364.         pos3.setTranslation(new Vector3d(macierz2.m03,macierz2.m13,macierz2.m23));
  365.         objTrans3.setTransform(pos3);
  366.     }
  367.     if (e.getKeyChar()=='s') {
  368.         if(yloc>-0.3)
  369.            yloc=yloc-0.01f;
  370.        
  371.         kat=0;
  372.        
  373.         p_chwytak.get(macierz);
  374.         macierz2.m03=macierz.m03*cos(kat)+macierz.m23*sin(kat);
  375.         macierz2.m13=yloc;
  376.         macierz2.m23=-macierz.m03*sin(kat)+macierz.m23*cos(kat);
  377.         p_chwytak.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  378.         p_chwytak.get(macierz);
  379.         p_chwytak.setTranslation(new Vector3d(macierz2.m03+macierz.m03,macierz2.m13+macierz.m13,macierz2.m23+macierz.m23));
  380.         objTrans4.setTransform(p_chwytak);  
  381.        
  382.         p_chwytak1.get(macierz);
  383.         macierz2.m03=macierz.m03*cos(kat)+macierz.m23*sin(kat);
  384.         macierz2.m13=yloc;
  385.         macierz2.m23=-macierz.m03*sin(kat)+macierz.m23*cos(kat);  
  386.         p_chwytak1.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  387.         p_chwytak1.setTranslation(new Vector3d(macierz2.m03,macierz2.m13+0.05f,macierz2.m23));
  388.         objTrans5.setTransform(p_chwytak1);
  389.      
  390.         p_chwytak2.get(macierz);
  391.         macierz2.m03=macierz.m03*cos(kat)+macierz.m23*sin(kat);
  392.         macierz2.m13=yloc;
  393.         macierz2.m23=-macierz.m03*sin(kat)+macierz.m23*cos(kat);  
  394.         p_chwytak2.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  395.         p_chwytak2.setTranslation(new Vector3d(macierz2.m03,macierz2.m13-0.05f,macierz2.m23));
  396.         objTrans6.setTransform(p_chwytak2);
  397.      
  398.         pos3.get(macierz);
  399.         macierz2.m03=macierz.m03*cos(kat)+macierz.m23*sin(kat);
  400.         macierz2.m13=yloc;
  401.         macierz2.m23=-macierz.m03*sin(kat)+macierz.m23*cos(kat);  
  402.         pos3.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  403.         pos3.setTranslation(new Vector3d(macierz2.m03,macierz2.m13,macierz2.m23));
  404.         objTrans3.setTransform(pos3);
  405.     }
  406.     if (e.getKeyChar()=='e') {
  407.         kat=(float) (Math.PI/32);
  408.         kx=(float) (kx+Math.PI/32);
  409.         obrot.rotY(Math.PI/32);
  410.        
  411.         p_chwytak.get(macierz);
  412.         macierz2.m03=macierz.m03*cos(kat)+macierz.m23*sin(kat);
  413.         macierz2.m13=yloc;
  414.         macierz2.m23=-macierz.m03*sin(kat)+macierz.m23*cos(kat);
  415.         p_chwytak.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  416.         p_chwytak.mul(obrot);
  417.         p_chwytak.setTranslation(new Vector3d(macierz2.m03,macierz2.m13,macierz2.m23));
  418.         objTrans4.setTransform(p_chwytak);
  419.  
  420.         p_chwytak1.get(macierz);
  421.         macierz2.m03=macierz.m03*cos(kat)+macierz.m23*sin(kat);
  422.         macierz2.m13=yloc;
  423.         macierz2.m23=-macierz.m03*sin(kat)+macierz.m23*cos(kat);
  424.         p_chwytak1.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  425.         p_chwytak1.mul(obrot);
  426.         p_chwytak1.setTranslation(new Vector3d(macierz2.m03,macierz2.m13+0.05f,macierz2.m23));
  427.         objTrans5.setTransform(p_chwytak1);
  428.        
  429.         p_chwytak2.get(macierz);
  430.         macierz2.m03=macierz.m03*cos(kat)+macierz.m23*sin(kat);
  431.         macierz2.m13=yloc;
  432.         macierz2.m23=-macierz.m03*sin(kat)+macierz.m23*cos(kat);
  433.         p_chwytak2.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  434.         p_chwytak2.mul(obrot);
  435.         p_chwytak2.setTranslation(new Vector3d(macierz2.m03,macierz2.m13-0.05f,macierz2.m23));
  436.         objTrans6.setTransform(p_chwytak2);
  437.  
  438.         pos3.get(macierz);
  439.         macierz2.m03=macierz.m03*cos(kat)+macierz.m23*sin(kat);
  440.         macierz2.m13=yloc;
  441.         macierz2.m23=-macierz.m03*sin(kat)+macierz.m23*cos(kat);
  442.         pos3.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  443.         pos3.mul(obrot);
  444.         pos3.setTranslation(new Vector3d(macierz2.m03,macierz2.m13,macierz2.m23));
  445.         objTrans3.setTransform(pos3);
  446.     }
  447.     if (e.getKeyChar()=='q') {
  448.         kat=(float) (Math.PI/32);
  449.         kx=(float) (kx-Math.PI/32);
  450.         obrot.rotY(-kat);
  451.        
  452.         p_chwytak.get(macierz);
  453.         macierz2.m03=macierz.m03*cos(-kat)+macierz.m23*sin(-kat);
  454.         macierz2.m13=yloc;
  455.         macierz2.m23=-macierz.m03*sin(-kat)+macierz.m23*cos(-kat);
  456.         p_chwytak.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  457.         p_chwytak.mul(obrot);
  458.         p_chwytak.setTranslation(new Vector3d(macierz2.m03,macierz2.m13,macierz2.m23));
  459.         objTrans4.setTransform(p_chwytak);
  460.        
  461.         p_chwytak1.get(macierz);
  462.         macierz2.m03=macierz.m03*cos(-kat)+macierz.m23*sin(-kat);
  463.         macierz2.m13=yloc;
  464.         macierz2.m23=-macierz.m03*sin(-kat)+macierz.m23*cos(-kat);
  465.         p_chwytak1.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  466.         p_chwytak1.mul(obrot);
  467.         p_chwytak1.setTranslation(new Vector3d(macierz2.m03,macierz2.m13+0.05,macierz2.m23));
  468.         objTrans5.setTransform(p_chwytak1);  
  469.        
  470.         p_chwytak2.get(macierz);
  471.         macierz2.m03=macierz.m03*cos(-kat)+macierz.m23*sin(-kat);
  472.         macierz2.m13=yloc;
  473.         macierz2.m23=-macierz.m03*sin(-kat)+macierz.m23*cos(-kat);
  474.         p_chwytak2.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  475.         p_chwytak2.mul(obrot);
  476.         p_chwytak2.setTranslation(new Vector3d(macierz2.m03,macierz2.m13-0.05,macierz2.m23));
  477.         objTrans6.setTransform(p_chwytak2);  
  478.                
  479.         pos3.get(macierz);
  480.         macierz2.m03=macierz.m03*cos(-kat)+macierz.m23*sin(-kat);
  481.         macierz2.m13=yloc;
  482.         macierz2.m23=-macierz.m03*sin(-kat)+macierz.m23*cos(-kat);
  483.         pos3.setTranslation(new Vector3d(0.0f,0.0f,0.0f));
  484.         pos3.mul(obrot);
  485.         pos3.setTranslation(new Vector3d(macierz2.m03,macierz2.m13,macierz2.m23));
  486.         objTrans3.setTransform(pos3);
  487.     }      
  488. }
  489.  
  490. public void keyReleased(KeyEvent e){
  491.  
  492.    // Invoked when a key has been released.
  493.  
  494. }
  495.  
  496. public void keyTyped(KeyEvent e){
  497.  
  498.    //Invoked when a key has been typed.
  499.  
  500. }
  501.  
  502. public static void main(String[] args) {
  503.  
  504.    System.out.println("Program Started");
  505.  
  506.    System.setProperty("sun.awt.noerasebackground", "true");
  507.  
  508.    Ramie_Robota robot = new Ramie_Robota();
  509.  
  510.    robot.addKeyListener(robot);
  511.  
  512.    MainFrame mf = new MainFrame(robot, 1000, 1000);  
  513.  
  514. }
  515. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement