I'd like to built an arm (tree part)
this is the code I have written but I can't go on: How can I do?
you can see tha picture that I'd like to do at
http://www.edicolainrete.com/fig.gif
Thank you in advance.
package braccio;
import javax.media.j3d.*;
import javax.vecmath.*;
import java.applet.*;
import java.awt.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
public class braccio {
public static TransformGroup braccio_luce()
{
TransformGroup tr=new TransformGroup();
tr.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
Transform3D traslazione=new Transform3D();
traslazione.setTranslation(new Vector3d(0.1,0.1,0.1));
Transform3D forma=new Transform3D();
forma.setNonUniformScale(1,0.1,0.2);
traslazione.mul(forma);
tr.setTransform(traslazione);
ColorCube br=new ColorCube(0.1);
tr.addChild(br);
return tr;
}
public static TransformGroup braccio2()
{
TransformGroup tr=new TransformGroup();
tr.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
Transform3D traslazione=new Transform3D();
traslazione.setTranslation(new Vector3d(0,0,0));
tr.setTransform(traslazione);
ColorCube br=new ColorCube(0.01);
tr.addChild(br);
TransformGroup bl=braccio_luce();
tr.addChild(bl);
return tr;
}
public static TransformGroup braccio1()
{
TransformGroup tr=new TransformGroup();
tr.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
Transform3D sistema_cubo=new Transform3D();
sistema_cubo.setTranslation(new Vector3d(0.,0.1,0));
Transform3D traslazione=new Transform3D();
traslazione.setTranslation(new Vector3d(0.2,0.2,0.2));
Transform3D rotazioneZ=new Transform3D();
rotazioneZ.rotZ(-0.5);
Transform3D forma=new Transform3D();
forma.setNonUniformScale(0.4,2,0.4);
Transform3D trasf_finale=rotazioneZ;
trasf_finale.mul(forma);
trasf_finale.mul(sistema_cubo);
//trasf_finale.mul(traslazione);
//trasf_finale.mul(rotazioneZ);
//trasf_finale.mul(rotazioneY);
//Transform3D forma=new Transform3D();
//forma.setNonUniformScale(1,0.3,0.1);
//traslazione.mul(forma);
tr.setTransform(trasf_finale);
ColorCube br=new ColorCube(0.1);
tr.addChild(br);
TransformGroup b2=braccio2();
tr.addChild(b2);
return tr;
}
public static BranchGroup base()
{
BranchGroup b=new BranchGroup();
TransformGroup tr=new TransformGroup();
Transform3D forma=new Transform3D();
forma.setNonUniformScale(1.3,0.4,1.3);
tr.setTransform(forma);
ColorCube bs=new ColorCube(0.1);
tr.addChild(bs);
//____________________________________________________________
// create line for X axis
LineArray axisXLines = new LineArray(2, LineArray.COORDINATES );
b.addChild(new Shape3D(axisXLines));
axisXLines.setCoordinate(0, new Point3f(-1.0f, 0.0f, 0.0f));
axisXLines.setCoordinate(1, new Point3f( 1.0f, 0.0f, 0.0f));
Color3f red = new Color3f(1.0f, 0.0f, 0.0f);
Color3f green = new Color3f(0.0f, 1.0f, 0.0f);
Color3f blue = new Color3f(0.0f, 0.0f, 1.0f);
// create line for Y axis
LineArray axisYLines = new LineArray(2,
LineArray.COORDINATES | LineArray.COLOR_3 );
b.addChild(new Shape3D(axisYLines));
axisYLines.setCoordinate(0, new Point3f( 0.0f,-1.0f, 0.0f));
axisYLines.setCoordinate(1, new Point3f( 0.0f, 1.0f, 0.0f));
axisYLines.setColor(0, green);
axisYLines.setColor(1, blue);
// create line for Z axis
Point3f z1 = new Point3f( 0.0f, 0.0f,-1.0f);
Point3f z2 = new Point3f( 0.0f, 0.0f, 1.0f);
LineArray axisZLines = new LineArray(10,
LineArray.COORDINATES | LineArray.COLOR_3
);
b.addChild(new Shape3D(axisZLines));
axisZLines.setCoordinate(0, z1);
axisZLines.setCoordinate(1, z2);
axisZLines.setCoordinate(2, z2);
axisZLines.setCoordinate(3, new Point3f( 0.1f, 0.1f, 0.9f));
axisZLines.setCoordinate(4, z2);
axisZLines.setCoordinate(5, new Point3f(-0.1f, 0.1f, 0.9f));
axisZLines.setCoordinate(6, z2);
axisZLines.setCoordinate(7, new Point3f( 0.1f,-0.1f, 0.9f));
axisZLines.setCoordinate(8, z2);
axisZLines.setCoordinate(9, new Point3f(-0.1f,-0.1f, 0.9f));
Color3f colors[] = new Color3f[9];
colors[0] = new Color3f(0.0f, 1.0f, 1.0f);
for(int v = 0; v < 9; v++){
colors[v] = red;
}
axisZLines.setColors(1, colors);
//____________________________________________________________
//non mettere la base
//b.addChild(tr);
//aggiungi il resto (braccio1,braccio2,braccioluce)
TransformGroup b1=braccio1();
b.addChild(b1);
return b;
}
public braccio() {
}
public static void main(String[] args) {
Frame frame = new Frame( );
frame.setSize( 640, 480 );
frame.setLayout( new BorderLayout( ) );
Canvas3D canvas = new Canvas3D( null );
frame.add( "Center", canvas );
SimpleUniverse univ = new SimpleUniverse( canvas );
univ.getViewingPlatform( ).setNominalViewingTransform( );
BranchGroup scene = base( );
scene.compile( );
univ.addBranchGraph( scene );
frame.show( );
}
}
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".