簡體   English   中英

在java3d中畫線

[英]Draw line in java3d

我想畫一條線來指定java 3d中的點。

我該怎么做?

例如,為了繪制立方體,我們編寫了colorcube。

請幫我。

使用LineArray類。 使用兩個頂點(無論您希望它們在哪里)為它創建一個對象,並將其添加到Shape3D對象。 new Shape3D(lineArr) 對於線陣:

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

然后:

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

對另一個頂點做同樣的事情。

然后將shape3D對象添加到場景圖或Branchgroup

這應該夠了吧。

這篇文章可能會對你有所幫助: 如何使用Java3D繪制線條[java-tips.org]

這對我有用,它繪制了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);

下面的Java代碼可以在3D屏幕上生成線條:

首先,構建一個主類(即:tuval1),然后構建一個公共類(即tuval7),如下所示。

另請參閱此鏈接: http//www.itk.ilstu.edu/faculty/javila/ITk356/Java3D/geometry.htm#3.4.2 Point * Classes:

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

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM