java3d安装_java3D安装 - itwriter的个人空间 - OSCHINA - 中文开源技术交流社区

开发环境:

win8 64 +jdk8

教程地址:http://www.java3d.org/tutorial.html

步骤:

1. jdk安装部署——略

2. 安装java3D

https://java3d.java.net/binary-builds.html

笔记本是64位,所以下载j3d-1_5_2-windows-amd64。注意,j3d-1_5_2-windows-i586.zip和j3d-1_5_2-windows-amd64不是指对应的cpu,有效的是最后2位数字。被这个坑了一阵子……

解压后发现两个文件夹,bin和lib

老规矩,lib包里的jar导入到项目classpath

bin的处理新鲜一点,我把它copy到src下,然后,

3e34fbb3f1f5049e873044f668298a03.png

好了,环境部署到此结束。接下来run你自己的代码就好。比方说:

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 graph

BranchGroup 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 screen

GraphicsConfiguration config =

SimpleUniverse.getPreferredConfiguration();

// Create a Canvas3D using the preferred configuration

Canvas3D c = new Canvas3D(config);

// Create simple universe with view branch

univ = 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 components

initComponents();

// Create Canvas3D and SimpleUniverse; add canvas to drawing panel

Canvas3D c = createUniverse();

drawingPanel.add(c, java.awt.BorderLayout.CENTER);

// Create the content branch and add it to the universe

scene = 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.

*/

// //GEN-BEGIN:initComponents

private 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();

}// //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:variables

private javax.swing.JPanel drawingPanel;

// End of variables declaration//GEN-END:variables

}

java3d的下载命名和本地库的设置着实坑了我一阵。

还有两个问题,一是不开放源码,看代码注释很不方便;二是java3d已经暂停维护了?!真的太糟糕了。

而且,堂堂java程序,除了JVM,居然还要本地库的支持??

啧啧,吃枣药丸啊——

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值