# gelöst!



## Angelo (11. Apr 2007)

Das ist erledigt!

Bitte sieh das neue Thema:

wieder kurze Frage: Skalieren in Java3D!


----------



## Zed (11. Apr 2007)

http://www.google.de/

Du willst keine Hilfe du möchtest eine fertige Lösung. Programmieren lernt man durch programmieren. 

Nen gutes Buch ist z.B. 
http://www.galileocomputing.de/openbook/javainsel6/

Den rest must dir halt durch lesen und ausprobieren beibringen.


----------



## Angelo (11. Apr 2007)

Bitte,

bitte ich habe nach Idee gefragt und nicht nach fertiger Lösung. .

Ich bin noch ganz Anfänger in Java, deswegen kann ich es noch nicht selbst lösen.

Und ich bin sehr in Eile dafür. 

Gruß

Angelo


----------



## Marco13 (11. Apr 2007)

Tolle Antwort.

Beschreib' dein Problem (also WAS genau du wissen willst) nochmal genauer, und poste vielleicht ein bißchen code. Für eine Kugel braucht man aber in jedem Fall ZWEI Dinge, nämlich die Position (die bei dir durch den Punkt gegeben ist) und den Radius.


----------



## Angelo (11. Apr 2007)

Bitte,

bitte ich habe nach Idee gefragt und nicht nach fertiger Lösung. .

Ich bin noch ganz Anfänger in Java, deswegen kann ich es noch nicht selbst lösen.

Und ich bin sehr in Eile dafür. 

Gruß

Angelo


----------



## Angelo (11. Apr 2007)

Hallo,

also sind keine richtigen Kugeln.

Wir können es als einfache Punkte mit 3 Komponenten (x, y, z).

Also wie kann ich diese Punkte in Java3D erzeugen?

Gruß

Angelo


----------



## Angelo (11. Apr 2007)

d.h.: Es handelt sich nur um die Position.

Den Radius können wir einfach vergessen!!


----------



## Marco13 (11. Apr 2007)

Naja. Die Beispiele von sun liefern schonmal das Grundgerüst. Die Transferleistung, dort dann 
noch zwei TransformGroups mit Kugeln dran reinzuhängen ... naja..


```
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.*;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.applet.MainFrame; 
import com.sun.j3d.utils.universe.*; 
import com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.*;
import javax.vecmath.*;

//   HelloJava3Da renders a single, rotating cube.  

public class HelloJava3Da extends Applet {
    public HelloJava3Da() {
        setLayout(new BorderLayout());
        GraphicsConfiguration config =
           SimpleUniverse.getPreferredConfiguration();

        Canvas3D canvas3D = new Canvas3D(config);
        add("Center", canvas3D);

        BranchGroup scene = createSceneGraph();

        // SimpleUniverse is a Convenience Utility class
        SimpleUniverse simpleU = new SimpleUniverse(canvas3D);

	// This will move the ViewPlatform back a bit so the
	// objects in the scene can be viewed.
        simpleU.getViewingPlatform().setNominalViewingTransform();

        simpleU.addBranchGraph(scene);
    } // end of HelloJava3Da (constructor)

     public BranchGroup createSceneGraph() {
	// Create the root of the branch graph
	BranchGroup objRoot = new BranchGroup();

        Transform3D zTrans = new Transform3D( );
        zTrans.set( new Vector3f( 0.0f,0.0f,1.0f ) ); //------------------------------- POSITION 1
        TransformGroup objTrans = new TransformGroup( zTrans  );
        objTrans.addChild(new Sphere(0.9f,
                              Sphere.GENERATE_NORMALS,
                              createAppearance()));

        Transform3D zTrans2 = new Transform3D( );
        zTrans.set( new Vector3f( 0.0f,0.0f,-1.0f ) );  //------------------------------- POSITION 2
        TransformGroup objTrans2 = new TransformGroup( zTrans2  );
        objTrans2.addChild(new Sphere(0.9f,
                              Sphere.GENERATE_NORMALS,
                              createAppearance()));

	objRoot.addChild(objTrans);
	objRoot.addChild(objTrans2);

	return objRoot;
    } // end of CreateSceneGraph method of HelloJava3Da

    //  The following allows this to be run as an application
    //  as well as an applet

    public static void main(String[] args) {
	Frame frame = new MainFrame(new HelloJava3Da(), 256, 256);
    } // end of main (method of HelloJava3Da)

} // end of class HelloJava3Da

  Appearance createAppearance() {

      Appearance appear = new Appearance();
      Material material = new Material();
//      material.setDiffuseColor(0.0f, 0.0f, 1.0f);
      material.setShininess(50.0f);
      // make modifications to default material properties
      appear.setMaterial(material);

//      ColoringAttributes colorAtt = new ColoringAttributes();
//      colorAtt.setShadeModel(ColoringAttributes.SHADE_FLAT);
//      appear.setColoringAttributes(colorAtt);

      return appear;
}
```


Ungetestet. Hab hier kein Java3D.


----------



## Angelo (11. Apr 2007)

Hallo wieder,

vielen Dank für Dich.

Aber ein kleiner Fehler ist gekommen.

Vielleicht habe ich NetBeans falsch benutzt?

Denn es erscheint immer einen Fehler auf der folgenden Zeile:

Appearance createAppearance() {

Wie ich schon gesagt habe, bin ich ganz Anfänger in Java.

Ich versuche auch die Nutzung des Programms zu lernen.

Und die Bücher reichen allein manchmal nicht.

Deswegen bitte ich euch um solche Hilfe.

Also habe ich in NetBeans folgende Punkte gefolgt:

1. Ein neues Projekt erzeugt:
   „File“ dann „New Project“ dann „General“ dann „Java Application“

2. Ein File unter dem Projekt:
„rechtes Maus auf dem oberen Projekt“ dann „new“ dann „JavaClass“ (anderes Mal Java Interface)

Aber ich kriege immer Fehler auf der Linie:

Appearance createAppearance()

Weißt Du, warum dieser Fehler??

Hangt es sich vom Programm oder von NetBeans Nutzung???

Noch mal vielen Dank

Gruß

Angelo


----------



## Marco13 (11. Apr 2007)

Das mit der Klammer (und noch ein allgemeinerer Tipp) steht in meiner Antwort-PN.


----------



## Angelo (11. Apr 2007)

Hallo wieder,

aber leider kriege ich immer Fehler.

Ich weiß es nicht warum??

Gruß

Angelo


----------



## Marco13 (11. Apr 2007)

Und da soll man sich nicht veräppelt fühlen. 

Scheinbar hat Zed das schon vorausgesehen.

Hier *hinklatsch* - compileren, starten, läuft.  Wenn was nicht funktioniert, ist das nicht mein Problem. Lies ein Buch.


```
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.*;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import javax.media.j3d.*;
import javax.vecmath.*;

//   HelloJava3Da renders a single, rotating cube.

public class HelloJava3Da extends Applet {
    public HelloJava3Da() {
        setLayout(new BorderLayout());
        GraphicsConfiguration config =
           SimpleUniverse.getPreferredConfiguration();

        Canvas3D canvas3D = new Canvas3D(config);
        add("Center", canvas3D);

        BranchGroup scene = createSceneGraph();

        // SimpleUniverse is a Convenience Utility class
        SimpleUniverse simpleU = new SimpleUniverse(canvas3D);

   // This will move the ViewPlatform back a bit so the
   // objects in the scene can be viewed.
        simpleU.getViewingPlatform().setNominalViewingTransform();

        simpleU.addBranchGraph(scene);
    } // end of HelloJava3Da (constructor)

     public BranchGroup createSceneGraph() {
   // Create the root of the branch graph
   BranchGroup objRoot = new BranchGroup();

    Color3f lColor1   = new Color3f(1.0f, 0.0f, 0.0f);
    ColoringAttributes caL1 = new ColoringAttributes();
    caL1.setColor(lColor1);
    Appearance appL1 = new Appearance();
    appL1.setColoringAttributes(caL1);

        Transform3D zTrans = new Transform3D( );
        zTrans.set( new Vector3f( 0.0f,-1.0f,-4.0f ) ); //------------------------------- POSITION 1
        TransformGroup objTrans = new TransformGroup( zTrans  );
        objTrans.addChild(new Sphere(0.2f, appL1));

        Transform3D zTrans2 = new Transform3D( );
        zTrans2.set( new Vector3f( 0.0f,1.0f,-2.0f ) );  //------------------------------- POSITION 2
        TransformGroup objTrans2 = new TransformGroup( zTrans2  );
        objTrans2.addChild(new Sphere(0.2f, appL1));

   objRoot.addChild(objTrans);
   objRoot.addChild(objTrans2);

   return objRoot;
    } // end of CreateSceneGraph method of HelloJava3Da

    //  The following allows this to be run as an application
    //  as well as an applet

    public static void main(String[] args) {
   Frame frame = new MainFrame(new HelloJava3Da(), 556, 556);
    } // end of main (method of HelloJava3Da)


  Appearance createAppearance() {

      Appearance appear = new Appearance();
      Material material = new Material();
      material.setDiffuseColor(0.0f, 0.0f, 1.0f);
      material.setShininess(50.0f);
      // make modifications to default material properties
      appear.setMaterial(material);

//      ColoringAttributes colorAtt = new ColoringAttributes();
//      colorAtt.setShadeModel(ColoringAttributes.SHADE_FLAT);
//      appear.setColoringAttributes(colorAtt);

      return appear;
}

} // end of class HelloJava3Da
```


----------



## Angelo (12. Apr 2007)

Hallo,

will niemand mir dabei weiter helfen?

Ist etwas nicht in Ordnung?


----------

