Java3D安装(idea版)
点击此处,获取更良好的阅读体验
文章目录
- 前言
- 1. JDK安装
- 2. Java 3D 1.5.1
- 3. idea的安装
前言
正值学习计算机图形学期间,学校选用的是比较冷门的Java3D,网上的安装教程也比较少,安装教程仅供参考。
1. JDK安装
JDK 点击下载
可以下载1.8或11稳定版本,这里记得要在我的电脑中配置环境,由于教程众多这里不再赘述
2. Java 3D 1.5.1
Java3d 点击下载
根据自己的系统选取,例如本人用的是windows,则选java3d-1-5-1-windows-i586.exe(代表32位)
这里注意一点,JDK和Java3D的位数需相同,例如JDK用的32位,Java3D库也需32位
3. idea的安装
idea 点击下载
下载community版本即可,如有激活码或其它途径可下载ultimate版本
以上三样安装安装好之后,即可打开idea进行配置
- ddl文件配置
将Java3D bin目录文件下的ddl文件拷贝至JDK bin目录下,否则将报异常UnsatisfiedLinkError

- 打开idea,选取环境,创建项目
右键External Libraries下的环境,打开库设置

- 添加jar包

- 找到java3d的安装位置,默认是在以下路径
\Java3D\1.5.1\lib\ext
将jar包导入即可
(64版本的Java安装路径可能无(x86))

- 最后用代码测试结果
package com.codeslogan.Test;import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.*;
import javax.vecmath.*;
import java.awt.GraphicsConfiguration;/*** Simple Java 3D example program to display a spinning cube.*/
public class HelloUniverse extends javax.swing.JFrame {private SimpleUniverse univ = null;private BranchGroup scene = null;public BranchGroup createSceneGraph() {// Create the root of the branch graphBranchGroup objRoot = new BranchGroup();// Create the TransformGroup node and initialize it to the// identity. Enable the TRANSFORM_WRITE capability so that// our behavior code can modify it at run time. Add it to// the root of the subgraph.TransformGroup objTrans = new TransformGroup();objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);objRoot.addChild(objTrans);// Create a simple Shape3D node; add it to the scene graph.objTrans.addChild(new ColorCube(0.4));// Create a new Behavior object that will perform the// desired operation on the specified transform and add// it into the scene graph.Transform3D yAxis = new Transform3D();Alpha rotationAlpha = new Alpha(-1, 4000);RotationInterpolator rotator =new RotationInterpolator(rotationAlpha, objTrans, yAxis,0.0f, (float) Math.PI*2.0f);BoundingSphere bounds =new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);rotator.setSchedulingBounds(bounds);objRoot.addChild(rotator);// Have Java 3D perform optimizations on this scene graph.objRoot.compile();return objRoot;}private Canvas3D createUniverse() {// Get the preferred graphics configuration for the default screenGraphicsConfiguration config =SimpleUniverse.getPreferredConfiguration();// Create a Canvas3D using the preferred configurationCanvas3D c = new Canvas3D(config);// Create simple universe with view branchuniv = new SimpleUniverse(c);// This will move the ViewPlatform back a bit so the// objects in the scene can be viewed.univ.getViewingPlatform().setNominalViewingTransform();// Ensure at least 5 msec per frame (i.e., < 200Hz)univ.getViewer().getView().setMinimumFrameCycleTime(5);return c;}/*** Creates new form HelloUniverse*/public HelloUniverse() {// Initialize the GUI componentsinitComponents();// Create Canvas3D and SimpleUniverse; add canvas to drawing panelCanvas3D c = createUniverse();drawingPanel.add(c, java.awt.BorderLayout.CENTER);// Create the content branch and add it to the universescene = createSceneGraph();univ.addBranchGraph(scene);}// ----------------------------------------------------------------/** This method is called from within the constructor to* initialize the form.* WARNING: Do NOT modify this code. The content of this method is* always regenerated by the Form Editor.*/// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponentsprivate void initComponents() {drawingPanel = new javax.swing.JPanel();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);setTitle("HelloUniverse");drawingPanel.setLayout(new java.awt.BorderLayout());drawingPanel.setPreferredSize(new java.awt.Dimension(250, 250));getContentPane().add(drawingPanel, java.awt.BorderLayout.CENTER);pack();}// </editor-fold>//GEN-END:initComponents/*** @param args the command line arguments*/public static void main(String args[]) {java.awt.EventQueue.invokeLater(new Runnable() {public void run() {new HelloUniverse().setVisible(true);}});}// Variables declaration - do not modify//GEN-BEGIN:variablesprivate javax.swing.JPanel drawingPanel;// End of variables declaration//GEN-END:variables}

- 安装成功!!