1.環境需要
(1)JDK(我使用的是1.8版本的)不要用太高的版本下載下傳位址連結:https://pan.baidu.com/s/1FDvJcG5SMdWxl3fVnRbmRw
提取碼:6cdp
(2)需要JAVA3D插件的安裝下載下傳路徑為:https://download.csdn.net/download/hongfei568718926/11670370
安裝的時候選對你的JDK的版本32或者64位,對應不同的安裝,安裝過程傻瓜式安裝,
(3)必要的JAVA3D的jar包,下載下傳位址https://download.csdn.net/download/hongfei568718926/11670445
下載下傳後jar包放在G:\Java\JDK\jre\lib\ext這個目錄下面(注意路徑)
(4)運作的時候報
- Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-ogl in java.library.path這個錯誤的時候需要下載下傳j3dcore-ogl.dll檔案,下載下傳路徑https://download.csdn.net/download/hongfei568718926/11670416
- 并放在G:\Java\JDK\bin這個目錄下面(注意路徑)
2.測試程式
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import javax.vecmath.*;
import javax.media.j3d.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.behaviors.vp.*;
import com.sun.j3d.utils.applet.MainFrame;
public class line1 extends Applet{
BranchGroup createSceneGraph(){
BranchGroup objRoot = new BranchGroup();
float vert[] = {
0.0f,0.0f,0.0f,
0.5f,0.3f,0f,
-0.4f,0.1f,0.0f,
0.4f,-0.4f,0f};
float color[] = { 1.0f,0.5f,1.0f, 0.5f,0.0f,1.0f, 0.0f,0.8f,0.0f, 1.0f,0.8f,0.0f};
//建立LineArray執行個體line 沒兩點畫一個線
LineArray line = new LineArray(4,LineArray.COORDINATES|LineArray.COLOR_3);
//設定Line的坐标數組和顔色數組
line.setCoordinates(0,vert);
line.setColors(0,color);
//定義一個Shape3D執行個體,并将line賦給Shape3D
Shape3D shape = new Shape3D();
shape.setGeometry(line);
objRoot.addChild(shape);
//定義一個白色的背景
BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0),100);
Color3f bgColor = new Color3f(1.0f,1.0f,1.0f);
Background bg = new Background(bgColor);//背景顔色
bg.setApplicationBounds(bounds);
objRoot.addChild(bg);
objRoot.compile();
return objRoot;
}
//建立三維場景圖
public line1(){
setLayout(new BorderLayout());
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
Canvas3D c = new Canvas3D(config);
add("Center",c);
BranchGroup scene = createSceneGraph();
SimpleUniverse u = new SimpleUniverse(c);
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);
}
public static void main(String[] args){
new MainFrame(new line1(),200,200);
}
}
3.運作結果

4.鼓勵學JAVA3D,沒有積分的夥伴可以直接點選下方擷取所有檔案:
連結:https://pan.baidu.com/s/1X69zLcWicfj9yzU_46_iwQ
提取碼:fgqx