我是三维图像菜鸟,想请大家帮个忙,如何生成三维图像 用java 3d 或者 jogl 都行java 3d 研究了一下,没弄出来,jogl 更是不懂java 3d 的代码
package a;
import javax.media.j3d.Appearance;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.LineArray;
import javax.media.j3d.LineAttributes;
import javax.media.j3d.LineStripArray;
import javax.media.j3d.Shape3D;import com.sun.j3d.utils.universe.SimpleUniverse;
public class lineShape extends Shape3D{
private float vert[]=
{
-0.6f,0.4f,0.0f, -0.6f,-0.4f,0.0f, -0.2f,-0.4f,0.0f,
};
private float vert2[]=
{
0.5f,0.8f,0.1f,0.2f,0.4f,0.0f, 0.2f,-0.4f,0.0f, 0.6f,-0.4f,0.0f,
};private float color[]=
{
0.0f,0.5f,1.0f, 0.5f,0.0f,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,
0.5f,0.3f,0.3f, 0.0f,0.4f,0.1f,
};
public lineShape()
{
int sCount[]=new int[1];
sCount[0]=3;
LineStripArray line=new LineStripArray(8,LineStripArray.COORDINATES|LineStripArray.COLOR_3,sCount);
//LineArray line=new LineArray(8,LineArray.COORDINATES|LineArray.COLOR_3);
line.setCoordinates(0, vert);
line.setColors(0, color);
LineAttributes la=new LineAttributes();
la.setLineWidth(5.0f);
la.setLineAntialiasingEnable(true);
Appearance ap=new Appearance();
ap.setLineAttributes(la);
this.setGeometry(line);
this.setAppearance(ap);
int sCount2[]=new int[1];
//曲线顶点数目
sCount2[0]=4;
LineStripArray line2=new LineStripArray(8,LineStripArray.COORDINATES|LineStripArray.COLOR_3,sCount2);
//LineArray line=new LineArray(8,LineArray.COORDINATES|LineArray.COLOR_3);
line2.setCoordinates(0, vert2);
line2.setColors(0, color);
LineAttributes la2=new LineAttributes();
la2.setLineWidth(5.0f);
la2.setLineAntialiasingEnable(true);
Appearance ap2=new Appearance();
ap.setLineAttributes(la2);
this.setGeometry(line2);
this.setAppearance(ap2);
}
public static void main(String[] args){
SimpleUniverse universe = new SimpleUniverse();
BranchGroup group=new BranchGroup();
Shape3D shape=new lineShape();
group.addChild(shape);
universe.getViewingPlatform().setNominalViewingTransform();
// 把group加入到虚拟空间中
universe.addBranchGraph(group);
}
}
各位大师帮我一把,谢谢!!!
package a;
import javax.media.j3d.Appearance;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.LineArray;
import javax.media.j3d.LineAttributes;
import javax.media.j3d.LineStripArray;
import javax.media.j3d.Shape3D;import com.sun.j3d.utils.universe.SimpleUniverse;
public class lineShape extends Shape3D{
private float vert[]=
{
-0.6f,0.4f,0.0f, -0.6f,-0.4f,0.0f, -0.2f,-0.4f,0.0f,
};
private float vert2[]=
{
0.5f,0.8f,0.1f,0.2f,0.4f,0.0f, 0.2f,-0.4f,0.0f, 0.6f,-0.4f,0.0f,
};private float color[]=
{
0.0f,0.5f,1.0f, 0.5f,0.0f,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,
0.5f,0.3f,0.3f, 0.0f,0.4f,0.1f,
};
public lineShape()
{
int sCount[]=new int[1];
sCount[0]=3;
LineStripArray line=new LineStripArray(8,LineStripArray.COORDINATES|LineStripArray.COLOR_3,sCount);
//LineArray line=new LineArray(8,LineArray.COORDINATES|LineArray.COLOR_3);
line.setCoordinates(0, vert);
line.setColors(0, color);
LineAttributes la=new LineAttributes();
la.setLineWidth(5.0f);
la.setLineAntialiasingEnable(true);
Appearance ap=new Appearance();
ap.setLineAttributes(la);
this.setGeometry(line);
this.setAppearance(ap);
int sCount2[]=new int[1];
//曲线顶点数目
sCount2[0]=4;
LineStripArray line2=new LineStripArray(8,LineStripArray.COORDINATES|LineStripArray.COLOR_3,sCount2);
//LineArray line=new LineArray(8,LineArray.COORDINATES|LineArray.COLOR_3);
line2.setCoordinates(0, vert2);
line2.setColors(0, color);
LineAttributes la2=new LineAttributes();
la2.setLineWidth(5.0f);
la2.setLineAntialiasingEnable(true);
Appearance ap2=new Appearance();
ap.setLineAttributes(la2);
this.setGeometry(line2);
this.setAppearance(ap2);
}
public static void main(String[] args){
SimpleUniverse universe = new SimpleUniverse();
BranchGroup group=new BranchGroup();
Shape3D shape=new lineShape();
group.addChild(shape);
universe.getViewingPlatform().setNominalViewingTransform();
// 把group加入到虚拟空间中
universe.addBranchGraph(group);
}
}
各位大师帮我一把,谢谢!!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货