mehrere Graphiken erstellen und ihre Position definieren

Status
Nicht offen für weitere Antworten.

Draco

Mitglied
Hallo,

ich muß mich im Rahmen einer Projektarbeit mit Java 3D beschäftigen und, da ich blutiger Java-Anfänger bin stehe ich voll auf dem Schlauch.

Ich muß in einer Umgebung mehr oder weniger komplizierte Objekte darstellen. Diese wollte ich nach Möglichkeit auf ihre Grundkörper zurückführen, um der Vektorgrafik aus dem Weg zu gehen. der 2. Grund ist, diese Objekte müssen durch Ereignisse Teilanimiert werden.

Nun zu meinen Problemen:

Wie kann ich Objekte wie Cube, Box, ... frei in dem Universum platzieren????

Wie kann ich einem Objekt eine Bewegung (horizontale rechts-links-Bewegung) aufzwingen????

Wie kann ich einen Button einfügen, wenn ich gleichzeitig die Funktion Box im Applet verwende???
Die Klassen der Beiden Objekte "beisen" sich....

Wie kann ich diese Bewegung durch einen Mouseclick auf einen Button starten????


Ich bin mir im Klaren darüber, daß dies wirklich viele Fragen sind. Vielleicht könnte ich sie nach langem, langem rätzeln auch selbst lösen, doch ich habe einfach nicht mehr die Nerven dazu... :-(


Anbei schreibe ich mal meinen Quelltext. Vielleicht sind dort ja noch Fehler enthalten, die weitere Probleme nach sich ziehen....

Ich danke euch schon mal recht herzlich im Voraus.

Draco




package festo.distribution;

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.WindowAdapter;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.behaviors.mouse.*;
import javax.media.j3d.*;
import javax.vecmath.*;

public class magazin extends Applet {

float angle = 0.0f;
Transform3D trans = new Transform3D();

private SimpleUniverse u = null;

//Inhaltszweig
public BranchGroup createSceneGraph() {
// Kreieren der root des branch graph (Teilbaumgraph)
BranchGroup objRoot = new BranchGroup();

BoundingSphere bounds =
new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);

// Kreieren einer Transformgroup, um alle Objekte
// in ihrer Größe der Scene anzupassen
TransformGroup objScale = new TransformGroup();
Transform3D t3d = new Transform3D();
t3d.setScale(0.2);
objScale.setTransform(t3d);
objRoot.addChild(objScale);

// Diese TranformGroup wird vom Mousmanipulator benutzt
TransformGroup objTrans = new TransformGroup();
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); //Falls gesetzt, dann ist das Verändern der Subknoten erlaubt (Schreibzugriff).
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); //Falls gesetzt, dann ist das Auslesen der Subknoten erlaubt (Lesezugriff).
objTrans.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND); //Falls gesetzt, dann ist das Hinzufügen von neuen Subknoten zu diesem Group-Objekt erlaubt.
objScale.addChild(objTrans);

// Diese TransformGroup dient zur Animation der Box
TransformGroup objAni = new TransformGroup();
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); //Falls gesetzt, dann ist das Verändern der Subknoten erlaubt (Schreibzugriff).
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); //Falls gesetzt, dann ist das Auslesen der Subknoten erlaubt (Lesezugriff).
objTrans.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND); //Falls gesetzt, dann ist das Hinzufügen von neuen Subknoten zu diesem Group-Objekt erlaubt.
objTrans.addChild(objAni);

// Kreieren des Zylinder
PolygonAttributes attr = new PolygonAttributes();
attr.setCullFace(PolygonAttributes.CULL_NONE);
Appearance ap = new Appearance();
Material mat = new Material();
mat.setLightingEnable(true);
ap.setMaterial(mat);
ap.setPolygonAttributes(attr);

// Anlegen der Objekte
Cylinder CylinderObj = new Cylinder(1.0f, 3.0f, ap);
Box BoxObj = new Box(1,1,3,ap);
ColorCube ColorCube = new ColorCube();

// Einfügen der Objekte in Graph
objTrans.addChild(CylinderObj);
objAni.addChild(BoxObj);

// Mouse-Rotationsverhalten kreieren ..... Wird durch das Gedrückthalten der linken Maustaste aktiviert
MouseRotate behavior = new MouseRotate(objTrans);
objTrans.addChild(behavior);
behavior.setSchedulingBounds(bounds);

// Mouse-Zoomverhalten kreieren ..... Wird durch das Gedrückthalten der mittleren Maustaste aktiviert
MouseZoom behavior2 = new MouseZoom(objTrans);
objTrans.addChild(behavior2);
behavior2.setSchedulingBounds(bounds);

// Mouse-Translationsverhalten kreieren ..... Wird durch das Gedrückthalten der rechten Maustaste aktiviert
MouseTranslate behavior3 = new MouseTranslate(objTrans);
objTrans.addChild(behavior3);
behavior3.setSchedulingBounds(bounds);

// Lichteffekte der Scene (2 unterschiedliche Lichtfarben)
Color3f lColor1 = new Color3f(0.5f, 0.0f, 0.5f);
Color3f lColor2 = new Color3f(0.7f, 0.7f, 0.0f);
Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, 1.0f);
Vector3f lDir2 = new Vector3f(0.0f, 0.0f, -1.0f);
DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1);
DirectionalLight lgt2 = new DirectionalLight(lColor2, lDir2);
lgt1.setInfluencingBounds(bounds);
lgt2.setInfluencingBounds(bounds);
objScale.addChild(lgt1);
objScale.addChild(lgt2);

// Hintergrund mit Farbe definieren
Color3f bgColor = new Color3f(0.05f, 0.05f, 0.5f); //blau
Background bgNode = new Background(bgColor);
bgNode.setApplicationBounds(bounds);
objRoot.addChild(bgNode);

// Optimiert den gesamten Inhaltszweig
objRoot.compile();

return objRoot;

}

public magazin() {

}

public void init() {
setLayout(new BorderLayout());
GraphicsConfiguration config =
SimpleUniverse.getPreferredConfiguration();

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

//JPanel p = new JPanel();
//p.add(rotateB);
//add("North", p);

// Kreieren einer einfachen Scene und Anbindung
// an das virtuelle Universum
BranchGroup scene = createSceneGraph();
u = new SimpleUniverse(c);

// Dies setzt die ViewPlatform ein Stück zurück,
// um alle Objekte der Scene betrachten zu können
u.getViewingPlatform().setNominalViewingTransform();

u.addBranchGraph(scene);
}

public void destroy() {
u.cleanup();
}

// Das Folgende erlaub das Prog als eine Applikation
// bzw. ein Applet laufen zu lassen
public static void main(String[] args) {
//Framegröße
new MainFrame(new magazin(), 256, 256);
}

}
 

Oxygenic

Bekanntes Mitglied
Also wenn du dir über _so viele_ auch grundlegende Details nicht im Klaren bist ... bis wann muß die Arbeit denn fertig sein?

> Wie kann ich Objekte wie Cube, Box, ... frei in dem Universum platzieren????

http://java.sun.com/products/java-m...PI/j3dapi/javax/media/j3d/TransformGroup.html

> Wie kann ich einem Objekt eine Bewegung (horizontale rechts-links-Bewegung) aufzwingen????

http://java.sun.com/products/java-m..._API/j3dapi/javax/media/j3d/Interpolator.html
bzw.
http://java.sun.com/products/java-m...pi/javax/media/j3d/TransformInterpolator.html

> Wie kann ich einen Button einfügen, wenn ich gleichzeitig die Funktion Box im Applet verwende???
> Die Klassen der Beiden Objekte "beisen" sich....

Das verstehe ich nicht. Was ist denn die "Funktion" Box?

> Wie kann ich diese Bewegung durch einen Mouseclick auf einen Button starten????

http://java.sun.com/j2se/1.3/docs/api/java/awt/event/ActionListener.html
 

Draco

Mitglied
Danke erst mal für deine Hilfe.Ich werde mich mal durch die ganzen Sachen durcharbeiten.
Am besten wäre es, wäre die Arbeit schon letztes Jahr fertig geworden..... :-(


> Wie kann ich einen Button einfügen, wenn ich gleichzeitig die Funktion Box im Applet verwende???
> Die Klassen der Beiden Objekte "beisen" sich....

Soll heißen:

Wenn ich die Packete "com.sun.j3d.utils.geometry.*" und "javax.swing.*;" gleichzeitig importiere und dann
eine Box kreiere "Box BoxObj = new Box(1,1,3,ap);", bekomme ich Fehlermeldungen über Konflikte der Packete...


Draco
 

Draco

Mitglied
Gibt es nicht eventuell eine Möglichkeit, bei der ich sagen kann, platziere Objekt01 an x1,y1,z1 und Objekt02 an x2,y2,z2?

Die Links, die du mir oben hingestellt hast, übersteigen mein Verständnis einfach..... sorry

Ist es außerdem möglich eine Gruppe von Objekten durch die Maus bewegen zu lassen (zoom, rotate,transl - siehe mein Programmtext oben) und gleichzeitig eines der Objekte aus dieser Gruppe mit einer eigenständigen/automatischen Bewegung zu belegen?
Wenn ja, wie kann ich das machen?
Wenn möglich mit nem kurzen Beispieltext......

Draco
 

Oxygenic

Bekanntes Mitglied
> Gibt es nicht eventuell eine Möglichkeit, bei der ich sagen kann, platziere Objekt01 an x1,y1,z1 und Objekt02 an x2,
> y2,z2?

Ja. Und wenn du dir die Beschreibung zu der TransformGroup durchgelesen hättest, wärst du ganz schnell auf die Klasse gestoßen, in der genau das definiert wird: http://java.sun.com/products/java-m...3_API/j3dapi/javax/media/j3d/Transform3D.html

> Ist es außerdem möglich eine Gruppe von Objekten durch die Maus bewegen zu lassen (zoom, rotate,transl - siehe
> mein Programmtext oben) und gleichzeitig eines der Objekte aus dieser Gruppe mit einer eigenständigen/automatischen
> Bewegung zu belegen?

Ja, du hängst sie halt nur in jeweils separate Teil-SceneGraphen, von denen einer von deinem gewünschten Mouse...Behavior gesteuert wird und die anderen von einem der Interpolatoren, die die Bewegung berechnen, die du benötigst (Rotation, Translation oder was auch immer). Link zu den Interpolatoren: siehe oben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Mehrere Klassen auf JFrame Spiele- und Multimedia-Programmierung 3
N Mehrere Rechtecke in großes Quadrat einzeichnen Spiele- und Multimedia-Programmierung 5
J mehrere Listener für einen Button / Label Spiele- und Multimedia-Programmierung 1
M Applets - mehrere Tasten gleichzeitig abfragen Spiele- und Multimedia-Programmierung 3
E [LWJGL] Karusell, mehrere Objekte drehen sich um einen Mittelpunkt Spiele- und Multimedia-Programmierung 31
staxx6 (Slick) Steuerung - mehrere Belegungen Spiele- und Multimedia-Programmierung 12
B GameGrid Probleme mit mehrere Actors Spiele- und Multimedia-Programmierung 5
R Mehrere Shader in einem Program Spiele- und Multimedia-Programmierung 8
B GameGrid Probleme mit mehrere Actors Spiele- und Multimedia-Programmierung 2
S Ein Thread für alle Animationen oder mehrere? Spiele- und Multimedia-Programmierung 2
S Mehrere Steine gleichzeitig setzen und bewegen Spiele- und Multimedia-Programmierung 4
V Java3D: mehrere ViewingPlaforms in Sonnensystem Spiele- und Multimedia-Programmierung 8
A Mehrere geometrische Objekte in JPanel zeichnen Spiele- und Multimedia-Programmierung 4
hdi mehrere Threads/Tasks in einem synchronisieren -> TaskPoo Spiele- und Multimedia-Programmierung 36
S Java3D - mehrere Instanzen eines Geometrieobjektes erzeugen Spiele- und Multimedia-Programmierung 3
V Ein oder mehrere GIF-Grafiken zusammenfügen Spiele- und Multimedia-Programmierung 3
M mehrere PNG in eine Datei Spiele- und Multimedia-Programmierung 3
L Wie kann ich mehrere Texturen auf ein Object File mappen Spiele- und Multimedia-Programmierung 4
H Pokemonklon erstellen Spiele- und Multimedia-Programmierung 7
M Mühle Spielfeld erstellen Spiele- und Multimedia-Programmierung 5
J TreeNode erstellen [Hilfe beim Konstruktor, Zeile 16] Spiele- und Multimedia-Programmierung 2
V GUI in LWJGL 2 erstellen Spiele- und Multimedia-Programmierung 6
J CMD Output aktualisieren lassen statt neu erstellen? Spiele- und Multimedia-Programmierung 1
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
A Figur zentrieren und Spielwelt erstellen Spiele- und Multimedia-Programmierung 1
R Durch String Platform Game erstellen Spiele- und Multimedia-Programmierung 8
B Mit Swing eine Grafische Oberfläche erstellen Spiele- und Multimedia-Programmierung 1
L Zeichentrick erstellen Spiele- und Multimedia-Programmierung 6
S GUI erstellen für Text Adventure Spiele- und Multimedia-Programmierung 4
ZoXlike Audio Server selbst erstellen Spiele- und Multimedia-Programmierung 11
K Erstellen eines Fotoalbums mit Java Spiele- und Multimedia-Programmierung 8
F Klausurersatz: Ein Java-Programm erstellen und dieses präsentieren. Spiele- und Multimedia-Programmierung 2
K Umlaufbahn erstellen Spiele- und Multimedia-Programmierung 3
Anfänger2011 Wichtig: Grafik und Sprites erstellen Spiele- und Multimedia-Programmierung 1
D Ordner auf Desktop erstellen(Pc unabhängig) Spiele- und Multimedia-Programmierung 3
J Zufällige Zeichenfolge erstellen mit Möglichkeit der Subtraktion Spiele- und Multimedia-Programmierung 20
X LWJGL - Anklick baren Button erstellen aber wie? Spiele- und Multimedia-Programmierung 6
X Minecraft Wie kann ich eine Karte erstellen wie zb:(Bei Minecraft) Spiele- und Multimedia-Programmierung 1
A Spielemap erstellen Spiele- und Multimedia-Programmierung 13
S Einen Dialog zweier Personen erstellen (Textadventure) Spiele- und Multimedia-Programmierung 4
G Textadventure erstellen Spiele- und Multimedia-Programmierung 9
M Beste methode zur Map Erstellen in "Block" Games Spiele- und Multimedia-Programmierung 2
F LWJGL Problem mit Erstellen eines Objekts und der Kamera Spiele- und Multimedia-Programmierung 5
windl Mediacenter Skin erstellen Spiele- und Multimedia-Programmierung 3
M OpenGL: Rectangle dort erstellen wo ich hintippe Spiele- und Multimedia-Programmierung 2
T LWJGL Gui erstellen Spiele- und Multimedia-Programmierung 7
N Level abspeichern/erstellen Spiele- und Multimedia-Programmierung 7
C Würfel erstellen und als Raum nutzen Spiele- und Multimedia-Programmierung 6
S Wolken Bild/Grafik vom Programm erstellen lassen Spiele- und Multimedia-Programmierung 11
N Eigene Java 3D Engine erstellen. Spiele- und Multimedia-Programmierung 11
P Spiel HUD erstellen Spiele- und Multimedia-Programmierung 6
D ImageIcon erstellen Spiele- und Multimedia-Programmierung 2
S Applikation aus Applet erstellen Spiele- und Multimedia-Programmierung 6
M Spielkapitel/-Level erstellen/verwalten Spiele- und Multimedia-Programmierung 6
T mit Sketchup und Java [Spiel erstellen] Spiele- und Multimedia-Programmierung 4
S Spielfeld erstellen Spiele- und Multimedia-Programmierung 2
X Kartenspiel: Karten erstellen Spiele- und Multimedia-Programmierung 4
W Quiz mit Videos erstellen Spiele- und Multimedia-Programmierung 4
T Animiertes GIF erstellen Spiele- und Multimedia-Programmierung 2
E Sammelspiel erstellen? Spiele- und Multimedia-Programmierung 2
W Bitmap aus Datei erstellen Spiele- und Multimedia-Programmierung 5
H Screenshot einer Graphics2D Anwendung erstellen Spiele- und Multimedia-Programmierung 6
Quaxli isometrische Sprites erstellen Spiele- und Multimedia-Programmierung 2
R Shapes erstellen Spiele- und Multimedia-Programmierung 8
D Jogl2 (Netbeans8) selbstlaufende Applikation erstellen Spiele- und Multimedia-Programmierung 4
S Grafik erstellen für Java Spiel Spiele- und Multimedia-Programmierung 8
M *.jar erstellen Spiele- und Multimedia-Programmierung 12
V Java3D: HUD erstellen Spiele- und Multimedia-Programmierung 2
V Java3D: Ringe für Saturn erstellen Spiele- und Multimedia-Programmierung 8
S jfreechart, kursdiagramm erstellen Spiele- und Multimedia-Programmierung 22
S Video erstellen (AVI) Spiele- und Multimedia-Programmierung 3
T Erstellen eines ausdruckbaren Formulars Spiele- und Multimedia-Programmierung 5
A Screenshots von einer Scene erstellen Spiele- und Multimedia-Programmierung 5
O Image dynamisch erstellen. Spiele- und Multimedia-Programmierung 6
G GL4Java Animation erstellen Spiele- und Multimedia-Programmierung 2
C JPEG oder BMP Bild erstellen Spiele- und Multimedia-Programmierung 5
S 3d editor gesucht der 3ds files erstellen kann. Spiele- und Multimedia-Programmierung 4
F Image eines bestimmten Bereichs eines JPanels erstellen Spiele- und Multimedia-Programmierung 4
T [jogl] GLU ab JSR-231 erstellen Spiele- und Multimedia-Programmierung 2
S Gif Animation aus Prog heraus erstellen Spiele- und Multimedia-Programmierung 11
S 3D Objekt erstellen und darstellen Spiele- und Multimedia-Programmierung 4
R JPEG aus HexString erstellen Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben