⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jtest3d.java

📁 java3d api 空间坐标系的点的显示
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package javatest3d;import com.sun.j3d.utils.behaviors.vp.OrbitBehavior;import com.sun.j3d.utils.geometry.Text2D;import com.sun.j3d.utils.universe.SimpleUniverse;import com.sun.j3d.utils.universe.ViewingPlatform;import java.applet.Applet;import java.awt.BorderLayout;import java.awt.GraphicsConfiguration;import javax.media.j3d.Appearance;import javax.media.j3d.Background;import javax.media.j3d.BoundingSphere;import javax.media.j3d.BranchGroup;import javax.media.j3d.Canvas3D;import javax.media.j3d.LineArray;import javax.media.j3d.PointArray;import javax.media.j3d.PointAttributes;import javax.media.j3d.Shape3D;import javax.media.j3d.Transform3D;import javax.media.j3d.TransformGroup;import javax.vecmath.Color3f;import javax.vecmath.Point3d;import javax.vecmath.Point3f;import javax.vecmath.Vector3d;/** * * @author Administrator */public class JTest3D  extends Applet{    public JTest3D()    {        //new ein neu Layout    setLayout(new BorderLayout());        GraphicsConfiguration config=            SimpleUniverse.getPreferredConfiguration();    Canvas3D canvas3D=new Canvas3D(config);    add("Center",canvas3D);    BranchGroup scene=createSceneGraph();    //SimpleUniverse ist ein Conveniece Utility Class.    SimpleUniverse simpleU=new SimpleUniverse(canvas3D);    //Die kann die ViewPlatform in die Scene zeigen .    simpleU.getViewingPlatform().setNominalViewingTransform();    //Mausnavigation (rotate und translate)    OrbitBehavior orbit=            new OrbitBehavior(canvas3D,OrbitBehavior.REVERSE_ALL|            OrbitBehavior.STOP_ZOOM);        //Grenzen festlegen    BoundingSphere bounds=            new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0);    //Dem Behaviordie Ganzen Uebergeben    orbit.setSchedulingBounds(bounds);    //Den Kleinsten Rotationsradius festlegen    orbit.setMinRadius(1.5);    //Neu text und Punkte erstellen    BranchGroup textbranchgroup = erzeugeText();    BranchGroup createpoint= createPoint();    //ViewingPlatform erzeugen    ViewingPlatform viewingPlatform=simpleU.getViewingPlatform();    //OrbitBehavior zuweisen    viewingPlatform.setViewPlatformBehavior(orbit);    //In Scene einfuegen ,einfuegen ,einfuegen.    simpleU.addBranchGraph(scene);    simpleU.addBranchGraph(textbranchgroup);    simpleU.addBranchGraph(createpoint);    }public BranchGroup createSceneGraph(){// Background einstellen    BranchGroup objRoot=new BranchGroup();    objRoot.addChild(createGeometry());    Background backg=new Background(0.9f,0.9f,0.4f);    backg.setApplicationBounds(new BoundingSphere());    objRoot.addChild(backg);    return objRoot;}//贴图片。。。很有用//fuer Bild einfuegen...//  public BranchGroup createGeometry()//  {//    BranchGroup notebookBG=new BranchGroup();      //  }    public BranchGroup createGeometry(){   //create ein Root von dem BranchGraphic    BranchGroup axisBG=new BranchGroup();         Color3f red=new Color3f(1.0f,0.0f,0.0f);    Color3f blue=new Color3f(0.0f,0.0f,1.0f);    Color3f yellow=new Color3f(1.0f,1.0f,0.0f);        LineArray a=new LineArray(8,LineArray.COORDINATES);    //axisBG.addChild(new Shape3D(a));    //erste Linie    a.setCoordinate(0, new Point3f(0.0f,0.0f,0.0f));//-0.5f,-0.35f,0.0f    a.setCoordinate(1, new Point3f(0.7f,0.0f,0.0f));    //zweite Linie    a.setCoordinate(2, new Point3f(0.0f,0.0f,0.0f));    a.setCoordinate(3, new Point3f(0.0f, 0.7f,0.0f));    //3.Line    a.setCoordinate(4, new Point3f(0.0f,0.0f,0.0f));    a.setCoordinate(5, new Point3f(0.0f,0.f,0.7f));    //    a.setColor(0, yellow);//    a.setColor(1, yellow);//    a.setColor(2, yellow);//    a.setColor(3, yellow);//    a.setColor(4, yellow);//    a.setColor(5, yellow);    //转换角度 视角    Transform3D rotation_x=new Transform3D();    Transform3D rotation_y=new Transform3D();        rotation_x.rotX(Math.PI/4.0d);    rotation_y.rotY(Math.PI/5.0d);    rotation_x.mul(rotation_y);     //Transform Gruppenknoten erzeugt    TransformGroup objRotation=new TransformGroup(rotation_x);    axisBG.addChild(objRotation);      axisBG.addChild(new Shape3D(a));        axisBG.compile();        return axisBG;} public BranchGroup erzeugeText()    {        //erzeugt den obersten Gruppenknoten des Objekts    BranchGroup objRoot=new BranchGroup();        Transform3D translation=new Transform3D();    translation.setTranslation(new Vector3d(0.6,0.05,0.05));//(-0.6,0.1,0.42));        TransformGroup objTranslation=new TransformGroup(translation);    objRoot.addChild(objTranslation);    objTranslation.addChild(new Text2D("X(nm)",                                        new Color3f(0f,1f,1f),                                        "Helvetica",                                        18,                                        0));    //fuer 0 punkte zeigen    Transform3D translation1=new Transform3D();    translation1.setTranslation(new Vector3d(0.0,0.0,0.0));    TransformGroup objTranslation1=new TransformGroup(translation1);    objRoot.addChild(objTranslation1);       objTranslation1.addChild(new Text2D("0",                                        new Color3f(0f,1f,1f),                                        "Helvetica",                                        16,                                        0));    //fuer Y zeigen        Transform3D translation2=new Transform3D();        translation2.setTranslation(new Vector3d(0.05,0.6,0.05));        TransformGroup objTranslation2=new TransformGroup(translation2);        objRoot.addChild(objTranslation2);        objTranslation2.addChild(new Text2D("Y(nm)",                                        new Color3f(0f,1f,1f),                                        "Helvetica",                                        18,                                        0));//fuer Z        Transform3D translation3=new Transform3D();        translation3.setTranslation(new Vector3d(0.05,0.05,0.6));        TransformGroup objTranslation3=new TransformGroup(translation3);        objRoot.addChild(objTranslation3);        objTranslation3.addChild(new Text2D("Z(nm)",                                        new Color3f(0f,1f,1f),                                        "Helvetica",                                        18,                                        0));    objRoot.compile();    return objRoot;    } public  float vert[]={0.3f,0.4f,0.1f, 0.5f,0.5f,0.2f,                   0.3f,0.1f,0.2f, 0.3f,0.2f,0.3f,                   0.5f,0.3f,0.3f, 0.5f,0.1f,0.2f,}; public BranchGroup createPoint(){        BranchGroup objRoot=new BranchGroup();    BoundingSphere bounds=new BoundingSphere(            new Point3d(0.0,0.0,0.0),100.0);    Color3f bgColor=new Color3f(1.0f,1.0f,1.0f);    Background bg=new Background(bgColor);    bg.setApplicationBounds(bounds);    objRoot.addChild(bg);    //定点坐标数组    float color[]={  0.0f,0.5f,0.0f, 0.0f,0.5f,0.0f,                      0.0f,0.3f,2.0f, 0.0f,0.0f,0.3f,                        0.1f,0.2f,0.3f, 0.9f,0.9f,0.9f,};         Shape3D shape=new Shape3D();     PointArray point=             new PointArray(6,PointArray.COORDINATES|PointArray.COLOR_3);     point.setCoordinates(0, vert);     point.setColor(0, color);     PointAttributes pa=new PointAttributes();     pa.setPointSize(4.0f);     pa.setPointAntialiasingEnable(true);     Appearance app=new Appearance();     app.setPointAttributes(pa);     shape.setGeometry(point);     shape.setAppearance(app);     objRoot.addChild(shape);     objRoot.compile();     return objRoot;    }}

⌨️ 快捷键说明

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