ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
337
337
EMPFEHLEN
-
08.06.11 17:03 #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
-
Hi Tobi,
wenn das ungefähr so aussehen soll, also bezogen auf die beiden Boxen:

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
-
15.06.11 13:26 #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
-
"Box in Box" Schema (Java3D)
Von whitebrazililan im Forum Sonstige 3D-ProgrammeAntworten: 0Letzter Beitrag: 04.05.11, 12:31 -
Richtige Syntax bei Operatorüberladung, wann sind "friend", "const", "&" nötig?
Von mrs_schokokeks im Forum C/C++Antworten: 4Letzter Beitrag: 25.08.10, 19:13 -
Java3D Transform3D
Von devian_der_999 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 19.11.08, 12:09 -
IE6 problem mit bild, das aus div container "herausragt" ("left:-100px")
Von Not so much B im Forum CSSAntworten: 1Letzter Beitrag: 16.08.07, 04:21 -
flash Problem - sendAndLoad("mailto.php", LV, "POST")
Von MikeTurrento im Forum Flash PlattformAntworten: 5Letzter Beitrag: 01.06.06, 11:11





Zitieren
Login





