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".

Reply via email to