hat vielleicht einer eine Idee wie man in einer Achsenkreuzszene(X,Y,Z) am "positiven" Ende der Linien jeweils eine einfache Pfeilspitze modellieren kann?
Code:
import java.applet.Applet;
import java.awt.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.behaviors.vp.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
public class LinienSample extends Applet{
public BranchGroup createSceneGraph(){
BranchGroup objRoot=new BranchGroup();
Background bg=new Background(new Color3f(0.4f,0.2f,0.8f));
bg.setApplicationBounds(new BoundingSphere());
objRoot.addChild(bg);
final Color3f red=new Color3f(1.0f,0.0f,0.0f);
final Color3f green=new Color3f(0.0f,1.0f,0.0f);
final Color3f blue=new Color3f(0.0f,0.0f,1.0f);
LineArray axisX=new LineArray(2,LineArray.COORDINATES);
axisX.setCoordinate(0,new Point3f(-1.0f,0.0f,0.0f));
axisX.setCoordinate(1,new Point3f(1.0f,0.0f,0.0f));
TransformGroup tg1=new TransformGroup();
Shape3D s3d=new Shape3D(axisX);
Appearance app=new Appearance();
Material m=new Material();
m.setEmissiveColor(red);
app.setMaterial(m);
app.setTransparencyAttributes(new TransparencyAttributes(TransparencyAttributes.NICEST,0.4f));
s3d.setAppearance(app);
tg1.addChild(new Box(0.2f,0.3f,0.4f,app));
tg1.addChild(s3d);
objRoot.addChild(tg1);
LineArray axisY=new LineArray(2,LineArray.COORDINATES|LineArray.COLOR_3);
axisY.setCoordinate(0,new Point3f(0.0f,-1.0f,0.0f));
axisY.setCoordinate(1,new Point3f(0.0f,1.0f,0.0f));
axisY.setColor(0,green);
axisY.setColor(1,blue);
objRoot.addChild(new Shape3D(axisY));
LineArray axisZ=new LineArray(2,LineArray.COORDINATES|LineArray.COLOR_3);
axisZ.setCoordinate(0,new Point3f(0.0f,0.0f,-1.0f));
axisZ.setCoordinate(1,new Point3f(0.0f,0.0f,1.0f));
axisZ.setColor(0,blue);
axisZ.setColor(1,red);
objRoot.addChild(new Shape3D(axisZ));
return objRoot;
}
public LinienSample(){
setLayout(new BorderLayout());
GraphicsConfiguration config=
SimpleUniverse.getPreferredConfiguration();
Canvas3D c=new Canvas3D(config);
add("Center",c);
BranchGroup scene=createSceneGraph();
scene.compile();
SimpleUniverse su=new SimpleUniverse(c);
su.getViewingPlatform().setNominalViewingTransform();
OrbitBehavior orbit=new OrbitBehavior(c,OrbitBehavior.REVERSE_ALL);
orbit.setSchedulingBounds(new BoundingSphere());
su.getViewingPlatform().setViewPlatformBehavior(orbit);
su.addBranchGraph(scene);
}
public static void main(String[ ]args){
new MainFrame(new LinienSample(),400,300);
}
}