2011-02-01 66 views
3

我想画一条线来指定java 3d中的点。在java3d中画线

我该怎么办?

例如绘制一个立方体我们写colorcube。

请帮帮我。

回答

4

使用LineArray类。用两个顶点为它创建一个对象(无论你想要它们在哪里)并将其添加到Shape3D对象.i.e。 new Shape3D(lineArr)。 对于线阵列:

LineArray lineArr=new LineArray(2,LineArray.COORDINATES); 

然后:

lineArr.setCoordinate(0,new Point3f());... 

为其他顶点做同样的。

然后将shape3D对象添加到场景图或Branchgroup

这应该做的伎俩。如下图所示:(tuval1即)和第二公共类(即tuval7):

0

下面的Java代码可以生成你的3D屏幕上线

首先,建立一个主类。

也看到此链接:http://www.itk.ilstu.edu/faculty/javila/ITk356/Java3D/geometry.htm#3.4.2点*类:

import javax.media.j3d.Appearance; 

import javax.media.j3d.BranchGroup; 

import javax.media.j3d.GeometryArray; 

import javax.media.j3d.LineStripArray; 

import javax.media.j3d.Shape3D; 

import javax.vecmath.Point3d; 

import com.sun.j3d.utils.universe.SimpleUniverse; 


public class tuval7 { 

    public tuval7(){ 

    SimpleUniverse u=new SimpleUniverse(); 

    BranchGroup group=new BranchGroup(); 

    Point3d coords[] = new Point3d[4]; 

Appearance app=new Appearance(); 

    coords[0] = new Point3d(-0.5d, -0.2d, 0.1d); 
    coords[1] = new Point3d(-0.2d, 0.1d, 0.0d); 
    coords[2] = new Point3d(0.2d, -0.3d, 0.1d); 
    coords[3] = new Point3d(0.3d, 0.5d, 0.10d); 

    int vertexCounts[] = {4}; 

    LineStripArray lines = new LineStripArray(4, 
    GeometryArray.COORDINATES, vertexCounts); 

    lines.setCoordinates(0, coords); 

    Shape3D shape=new Shape3D(lines , app); 

    group.addChild(shape); 

    u.addBranchGraph(group); 

    u.getViewingPlatform().setNominalViewingTransform(); 

    } 

} 

public class tuval1 { 

    public static void main(String[] args) { 

     // TODO Auto-generated method stub 

new tuval7(); 
    } 

} 
+0

你在这里有什么问题? – kittu 2016-02-25 15:12:16

1

这个工作对我来说,它绘制x轴:

LineArray lineX = new LineArray(2, LineArray.COORDINATES); 
lineX.setCoordinate(0, new Point3f(-100.0f, 0.0f, 0.0f)); 
lineX.setCoordinate(1, new Point3f(100.0f, 0.0f, 0.0f)); 
scene.addChild(new Shape3D(lineX)); 

一个颜色的线,可以得出这样的

Appearance appearanceGreen = new Appearance(); 
ColoringAttributes coloringAttributesGreen = new ColoringAttributes(); 
coloringAttributesGreen.setColor(new Color3f(Color.green)); 
appearanceGreen.setColoringAttributes(coloringAttributesGreen); 
Shape3D shapeLine = new Shape3D(lineX, appearanceGreen); 
scene.addChild(shapeLine);