Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. import javax.media.j3d.*;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import com.sun.j3d.utils.universe.SimpleUniverse;
  5. import javax.media.j3d.Transform3D;
  6. import javax.vecmath.Vector3f;
  7.  
  8. import com.sun.j3d.utils.geometry.*;
  9. import javax.vecmath.Color3f;
  10. import javax.vecmath.Point3d;
  11. import javax.vecmath.Point3f;
  12.  
  13.  
  14.  
  15. public class Program3D extends JFrame{
  16.  
  17. Program3D(){
  18.  
  19. super("Program3D");
  20.  
  21. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  22. setResizable(false);
  23.  
  24.  
  25. GraphicsConfiguration config =
  26. SimpleUniverse.getPreferredConfiguration();
  27.  
  28. Canvas3D canvas3D = new Canvas3D(config);
  29. canvas3D.setPreferredSize(new Dimension(800,600));
  30.  
  31. add(canvas3D);
  32. pack();
  33. setVisible(true);
  34.  
  35. BranchGroup scena = utworzScene();
  36. scena.compile();
  37.  
  38. SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
  39.  
  40. Transform3D przesuniecie_obserwatora = new Transform3D();
  41. przesuniecie_obserwatora.set(new Vector3f(0.0f,0.0f,3.0f));
  42.  
  43. simpleU.getViewingPlatform().getViewPlatformTransform().setTransform(przesuniecie_obserwatora);
  44.  
  45. simpleU.addBranchGraph(scena);
  46. }
  47.  
  48. BranchGroup utworzScene(){
  49.  
  50. BranchGroup wezel_scena = new BranchGroup();
  51.  
  52.  
  53. //OBROT
  54. TransformGroup obrot_animacja = new TransformGroup();
  55. obrot_animacja.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
  56. wezel_scena.addChild(obrot_animacja);
  57.  
  58. Alpha animacja = new Alpha(-1,5000);
  59.  
  60. RotationInterpolator obracacz = new RotationInterpolator(animacja, obrot_animacja);
  61.  
  62. BoundingSphere bounds = new BoundingSphere(new Point3d(0.0d,0.0d,0.0d), 10.0d);
  63. obracacz.setSchedulingBounds(bounds);
  64.  
  65. Transform3D temp_rot = new Transform3D();
  66. temp_rot.rotX(Math.PI/2);
  67. obracacz.setTransformAxis(temp_rot);
  68. obrot_animacja.addChild(obracacz);
  69.  
  70. //WALEC
  71. Material material_cylindra = new Material(new Color3f(1.5f, 0.3f,0.2f), new Color3f(0.5f,0.1f,0.1f),
  72. new Color3f(0.8f, 0.5f, 0.5f), new Color3f(0.2f, 0.1f, 0.2f), 20.0f);
  73.  
  74. Appearance wyglad_walca = new Appearance();
  75.  
  76. wyglad_walca.setMaterial(material_cylindra);
  77. Cylinder cylinder = new Cylinder(0.05f, 0.5f, wyglad_walca);
  78.  
  79. TransformGroup trans_walca = new TransformGroup();
  80.  
  81. Transform3D przesuniecie_walca = new Transform3D();
  82. Transform3D rot_walca = new Transform3D();
  83.  
  84. rot_walca.rotZ(Math.PI/2);
  85.  
  86. przesuniecie_walca.mul(rot_walca);
  87.  
  88. trans_walca.setTransform(przesuniecie_walca);
  89. wezel_scena.addChild(trans_walca);
  90. trans_walca.addChild(cylinder);
  91.  
  92. //kulki
  93.  
  94. Sphere kulka = new Sphere(0.2f, wyglad_walca);
  95.  
  96.  
  97. TransformGroup trans_kuli = new TransformGroup();
  98. Transform3D przesuniecie_kuli = new Transform3D();
  99. przesuniecie_kuli.set(new Vector3f(0.3f,0.4f,0.0f));
  100. trans_kuli.setTransform(przesuniecie_kuli);
  101.  
  102. obrot_animacja.addChild(trans_kuli);
  103. trans_kuli.addChild(kulka);
  104.  
  105. //swiatlo
  106.  
  107. Color3f kolor_swiatla_pnkt = new Color3f(0.0f,1.0f,0.0f);
  108. PointLight swiatlo = new PointLight(kolor_swiatla_pnkt, new Point3f(0f,0f,0.0f), new Point3f(0.1f,0.1f,0.1f));
  109. Transform3D przesuniecie_swiatla = new Transform3D();
  110. przesuniecie_swiatla.set(new Vector3f(-0.3f,-0.4f,0.0f));
  111. swiatlo.setInfluencingBounds(bounds);
  112. TransformGroup trans_swiatla = new TransformGroup();
  113. trans_swiatla.setTransform(przesuniecie_swiatla);
  114. obrot_animacja.addChild(trans_swiatla);
  115. trans_swiatla.addChild(swiatlo);
  116.  
  117. return wezel_scena;
  118.  
  119.  
  120. }
  121.  
  122. public static void main(String args[]){
  123. new Program3D();
  124.  
  125. }
  126.  
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement