gelöst!

Status
Nicht offen für weitere Antworten.

Angelo

Mitglied
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

Top Contributor
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

Mitglied
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

Mitglied
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
 

Marco13

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

Code:
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

Mitglied
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

Top Contributor
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.

Code:
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
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben