在Java3D中绘制线条

3
我希望在Java 3D中指定两个点之间画一条线。
请问如何实现?
例如,要画一个立方体,我们可以使用colorcube命令。
请帮助我。
4个回答

5

使用LineArray类。创建一个具有两个顶点(无论您想要它们在哪里)的对象,并将其添加到一个Shape3D对象中,即new Shape3D(lineArr)。 关于线条数组:

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

那么:
lineArr.setCoordinate(0,new Point3f());...

将同样的操作用于另一个顶点。

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

这样就完成了。


2

在这里您可以找到一个有效的链接:点击这里 - stephanmg

1
以下Java代码可以在您的3D屏幕上生成线条:
首先,按照下面的方式构建一个主类(即:tuval1),其次是一个公共类(即:tuval7)。
还可以查看此链接: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();
    }

}

你的问题是什么? - kittu
他想展示你可以在LineArray中使用超过两个点吗? - stephanmg

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接