turningcubes2.java

来自「Java3D程序,实现各种立体变换.适于基础编程.」· Java 代码 · 共 46 行

JAVA
46
字号
import com.sun.j3d.utils.universe.SimpleUniverse; 
import com.sun.j3d.utils.geometry.*; 
import javax.media.j3d.*;
import javax.vecmath.Vector3f;

//import java.applet.Applet; 
public class TurningCubes2
{
  public TurningCubes2()
   {SimpleUniverse su=new SimpleUniverse();
    BranchGroup bg=new BranchGroup();
    
    TransformGroup tgAll=new TransformGroup(); // insert a tg between bg and child cubes
    bg.addChild(tgAll);

    tgAll.addChild(TGroup(0.2f, -0.3f, -0.3f, 0.0f));  // child-cubes attached to tg instead of bg
    tgAll.addChild(TGroup(0.2f, -0.3f, 0.3f, 0.0f));
    tgAll.addChild(TGroup(0.2f, 0.3f, -0.3f, 0.0f));
    tgAll.addChild(TGroup(0.2f, 0.3f, 0.3f, 0.0f));
    
    Transform3D tfAll = new Transform3D();  // Add rotation for the whole group
    tfAll.rotX(Math.PI/4);
//    tfAll.rotY(Math.PI/4);
//    tfAll.rotZ(Math.PI/4);
    tgAll.setTransform(tfAll);
    
    su.getViewingPlatform().setNominalViewingTransform();
    su.addBranchGraph(bg);
   }

public static void main(String[] args)
  {new TurningCubes2();
  }

public TransformGroup TGroup(float size, float x, float y, float z)
{TransformGroup tg=new TransformGroup();
 ColorCube cc=new ColorCube(size);
 tg.addChild(cc); 
 Transform3D tf=new Transform3D(); 
 Vector3f vect=new Vector3f(x, y, z);
 tf.setTranslation(vect);
 tg.setTransform(tf);
 return tg;
}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?