tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
337
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Apr 2011
    Beiträge
    6
    Hallo,

    ich habe mit Java3D eine Primitive-Box mit den x,y,z-Dimensionen 2.44f, 2.35f und 7.7f erstellt. Diese habe ich der Szene ohne setTranslation hinzugefügt. Dann sollte der Mittelpunkt der Box doch auf (0,0,0) liegen, oder?

    Wenn ich in diese Box eine kleine Box mit den Dimensionen 0.8f,1.2f,1.2f "packen" möchte und diese bündig abschließen soll, dann muss ich die setTranslation-Methode des Transform3D-Objekts der kleineren Box folgendermaßen aufrufen:

    test2.setTranslation(new Vector3f(-1.64f,-1.15f,-6.5f));

    Die Boxen sind also irgendwie doppelt so groß als sie sein sollten, oder? Zumindest ist die große Box auf beide Seiten hin 7.7m lang...

    Haben ich da einen Denkfehler oder einen Fehler programmiert?

    Grüße,
    Tobi
     

  2. #2
    knoppi60 knoppi60 ist offline Grünschnabel
    Registriert seit
    May 2011
    Beiträge
    4
    Hi Tobi,

    wenn das ungefähr so aussehen soll, also bezogen auf die beiden Boxen:
    Java3D: Problem Box-Dimensionen und "Transform3D".setTranslation-cube3d.png Java3D: Problem Box-Dimensionen und "Transform3D".setTranslation-cube3d2.png
    sind deine Berechnungen richtig.
    Vielleicht hast du irgendwo im Code einen Fehler eingebaut ?


    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    
      private void floatingBox() {
          /* App fuer die grosse Box */
          Appearance app = new Appearance();
          PolygonAttributes poly = new PolygonAttributes();
          poly.setPolygonMode(PolygonAttributes.POLYGON_LINE);
          poly.setCullFace(PolygonAttributes.CULL_NONE);
          app.setPolygonAttributes(poly);
     
          Box box = new Box(2.44f, 2.35f, 7.7f, app);
          
          /* App fuer die kleine Box */
          Color3f black = new Color3f(0.0f, 0.0f, 0.0f);
          Color3f blue = new Color3f(0.3f, 0.3f, 0.8f);
          Color3f specular = new Color3f(0.9f, 0.9f, 0.9f);
     
          Material blueMat = new Material();
          blueMat.setAmbientColor(blue);
          blueMat.setDiffuseColor(black);
          blueMat.setSpecularColor(specular);
          blueMat.setShininess(25.0f);
     
          Appearance blueApp = new Appearance();
          blueApp.setMaterial(blueMat);
     
          Box boxTrans = new Box(0.8f,1.2f,1.2f, blueApp);
          
          
          /* TransformGroup und Transform3D erzeugen */
          TransformGroup boxTG = new TransformGroup();
          Transform3D box3D = new Transform3D();
          
          /* Transformation erstellen und anwenden */
          box3D.setTranslation(new Vector3f(-1.64f,-1.15f,-6.5f));
          boxTG.setTransform(box3D);
          boxTG.addChild(boxTrans);
          
          sceneBG.addChild(box);
          sceneBG.addChild(boxTG);
      }

    Viele Grüße

    knoppi
     

  3. #3
    Registriert seit
    Apr 2011
    Beiträge
    6
    Hallo Knoppi,

    danke für deine Antwort. Meine Kiste schließt bündig ab.
    Aber ich wollte, wenn ich die Länge, Breite und Höhe meiner großen Kiste erstelle, auch genau diese Länge, Breite und Höhe haben. Denn die kleine Box hat ja komische Werte, die ich ihr mitgebe finde ich.
    Was genau liegt denn in (0,0,0), wenn ich die setTranslation(new Vector(0;0;0)) anspreche?
    der Mittelpunkt der Box oder eine Ecke?

    Grüße,
    Tobi
     

Ähnliche Themen

  1. "Box in Box" Schema (Java3D)
    Von whitebrazililan im Forum Sonstige 3D-Programme
    Antworten: 0
    Letzter Beitrag: 04.05.11, 12:31
  2. Antworten: 4
    Letzter Beitrag: 25.08.10, 19:13
  3. Java3D Transform3D
    Von devian_der_999 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 19.11.08, 12:09
  4. Antworten: 1
    Letzter Beitrag: 16.08.07, 04:21
  5. flash Problem - sendAndLoad("mailto.php", LV, "POST")
    Von MikeTurrento im Forum Flash Plattform
    Antworten: 5
    Letzter Beitrag: 01.06.06, 11:11