创建空间几何模型

>

Java3D实现简单几何空间图形说明:

实例应用:创建3D直线

package com.java3d.dennist.study;import javax.media.j3d.Appearance;import javax.media.j3d.LineArray;import javax.media.j3d.LineAttributes;import javax.media.j3d.Shape3D;/** * * * @version : 1.1 ** @author : 苏若年<a href=”mailto:DennisIT@163.com”>发送邮件</a> ** @since : 1.0创建时间: 2013-5-6 下午02:57:47 ** TODO: * LineShape extends Shape3D{vert[ ]={0.5f,0.5f,0.0f, -0.5f,0.5f,0.0f,0.3f,0.0f,0.0f, -0.3f,0.0f,0.0f,-0.5f,-0.5f,0.0f, 0.5f,-0.5f,0.0f};color[ ]={0.0f,0.5f,1.0f, 0.0f,0.5f,1.0f,0.0f,0.8f,2.0f, 1.0f,0.0f,0.3f,0.0f,1.0f,0.3f, 0.3f,0.8f,0.0f};public LineShape( ) {// 创建直线数组对象LineArray line=new LineArray(6,LineArray.COORDINATES|LineArray.COLOR_3);// 设置直线对象的坐标数组line.setCoordinates(0,vert);// 设置直线对象的颜色数组line.setColors(0,color);// 创建直线属性对象LineAttributes linea=new LineAttributes( );// 设置线宽linea.setLineWidth(10.0f);// 设置直线的渲染效果linea.setLineAntialiasingEnable(true);Appearance app=new Appearance( );app.setLineAttributes(linea);this.setGeometry(line);this.setAppearance(app);}}

将3d直线放置到场景中

package com.java3d.dennist.study;import javax.media.j3d.BoundingSphere;import javax.media.j3d.BranchGroup;import javax.media.j3d.DirectionalLight;import javax.media.j3d.Shape3D;import javax.vecmath.Color3f;import javax.vecmath.Point3d;import javax.vecmath.Vector3f;import com.sun.j3d.utils.universe.SimpleUniverse;/** * * * @version : 1.1 ** @author : 苏若年<a href=”mailto:DennisIT@163.com”>发送邮件</a> ** @since : 1.0创建时间: 2013-5-6 下午02:50:08 ** TODO: * Line3DShape {public Line3DShape(){//构建空间 和物体// 创建一个虚拟空间SimpleUniverse universe = new SimpleUniverse();// 创建一个用来包含对象的数据结构BranchGroup group = new BranchGroup();// 创建直线形状对象把它加入到group中Shape3D shape=new LineShape();group.addChild(shape);//灯光构造Color3f light1Color = new Color3f(1.8f, 0.1f, 0.1f);// 设置光线的颜色BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);// 设置光线的作用范围Vector3f light1Direction = new Vector3f(4.0f, -7.0f, -12.0f);// 设置光线的方向DirectionalLight light1= new DirectionalLight(light1Color, light1Direction);// 指定颜色和方向,产生单向光源light1.setInfluencingBounds(bounds);// 把光线的作用范围加入光源中group.addChild(light1);// 将光源加入group组// 安放观察点universe.getViewingPlatform().setNominalViewingTransform();// 把group加入到虚拟空间中universe.addBranchGraph(group);} main(String[] args) {new Line3DShape();}}

运行效果:

其他形状

实例应用:Java3D实现空间椎体

懂得倾听别人的忠告。

创建空间几何模型

相关文章:

你感兴趣的文章:

标签云: