Teilgraphen bewegen

Status
Nicht offen für weitere Antworten.

RobDom

Mitglied
Hallo,

ich versuche einen komplexen Graphen aufzubauen, bei dem man einzelne Teilgraphen einzeln
bewegen kann (z.B. Körper, Arm, Hand, Finger, etc.). Im Moment sieht es so aus, dass ich einfach
mehrere TransformGroups hintereinander hängen habe, damit sich die Bewegungen der übergeordneten
Körperteile auch auf die dahinterhängenden auswirkt.


Mein Problem ist,

1. dass ich diese Bewegungen nicht über Maus oder Key steuern will,
sondern z.B. über die Werte einer Scrollbar, eines Textfeldes und später auch aus einem
Datenstream ansteuern will.
2. dass diese Körperteile auch erst zur Laufzeit vom User erstellt werden.


Was ich schon habe:

1. Eingabemaske für die Userdaten (Körperteile werden aus Grundformen über Parametereingabe erstellt),
dabei werden die Daten in einem Mehrdimensionalen Array gespeichert.
2. Alle mathematischen Berechnungen (Matrizen für alle Raumrotationen, Raumtranslationen, Skalierung).


Was mir fehlt (also meine eigentlichen Fragen):

1. Ein sinnvoller Aufbau (z.B. Baumstruktur), bei dem ich schnell eine bestimmte Transformation
im SceneGraph finden kann (Anzahl und Verkettungsebene sind zur Entwicklungszeit unbekannt) ???
2. Die so gefundene Transfomation zu verändern und über Werte aus Scrollbar, etc. zu steuern
--> Muss ich dafür ein eigenes Behaviour schreiben, oder geht dass auch einfach mit Capability
setzen und Trafo überschreiben ??? (Wenn ja wie finde ich eine Trafo; kann nur auf Nodes zugreifen ???)
3. Das ganze muss, da es ein sehr komplexer Graph werden soll (mit geladenen VRML Dateien, etc.)
und sehr schnell und flüsig laufen muss, auch sehr ressourchenschonend programmiert werden.
Tipps dafür ???


Vielen Dank für jegliche Hilfe
 

Marco13

Top Contributor
Ja, eine sehr abstrakte Frage. Aber zu 1. und 2.: Kannst du dir nicht eine Map erstellen, die irgendeinen Identifier auf den jeweiligen TransformGroup mappt? Dort könntest du dann einfach mit setTransform die gewünschte Transformation setzen. Für die Steuerung braucht man wohl nicht unbedingt Behaviors - man sollte jederzeit die Transform setzen können. Allerdings würde ich nochmal gezielt nach einer Verbindung zwischen AWT Events (Event dispatch Thread) und Behaviors suchen - ob's da irgendeine elegante Verbnidungsmöglichkeit gibt.
 

RobDom

Mitglied
...wollte mir eigentlich die TransformGroup entwerde über deren Namen,
oder deren Position (Zweig und Tiefe im Baum) merken, aber mappen ist
bestimmt auch eine gute Idee. Das schau ich mir mal an.

Was meinst Du mit Verbindungen zwischen Events und Behavior??

Ich löse bisher im Prinzip das Neuzeichnen und damit auch das Berechnen der Matrizen
und das setzten der Transformationen über den Thread aus.

Noch eine Frage:
Bin auf der Suche nach fertigen Navigationen (Behaviors), die mehr als die Standards
enthalten, also (walking, flying, pointing, looking, inkl. Resetfunktion, feste 90° Sprünge, etc)


Vielen Dank schhon mal ;-)
 

Marco13

Top Contributor
"...über den Thread" - Ja, entscheidend ist eben, über welchen. Wenn man ein Fenster aufmacht laufen schon 10 Threads oder so, und wenn man Java3D drin hat, sind es nochmal zig Threads mehr. Es ging darum, dass z.B. MouseEvents oder Slider-Bewegungen vom EventDispatchThread verarbeitet werden, aber Behaviors werden von einem Java3D-eigenen Rendering-Thread abgearbeitet. (Und ob ein Neuzeichnen nun ein update der der Transforms auslöst, oder umgekehrt, konnte ich damals auch nach langem Suchen im Java3D-Quellcode nich erschließen... da geht's ziemlich drunter und drüber :wink: ). Ein Problem, das auftreten könnte wäre eben, dass man z.B. 2 Objekte "simultan" mit einem Slider bewegen will, sie aber manchmal um einen Frame versetzt erscheinen, weil der Event vom Slider zu einem "ungünstigen Zeitpunkt" an den Szenegraphen weitergereicht wurde. Ich weiß nicht, ob sowas für deine Anwendung überhaupt relevant ist. Mit Behaviors wäre jedenfalls sichergestellt, dass die Eingaben immer "synchronisiert" verarbeitet werden. Allerdings gibt es für einen Slider kein Behavior, und spontan weiß ich nicht auswendig, wie man eine (garantiert synchronisierte) Verbindung zwischen Slidern und dem Java3D Szenegraphen herstellen kann - deswegen der Tipp, mal danach zu suchen - wie gesagt, nur FALLS das für dich relevant ist.
 

RobDom

Mitglied
... ja das ist sogar sehr relevant!

- Woher weisst Du eigentlich was von welchem Thread abgearbeitet wird und hat man da Einfluss drauf??

- Es geht nicht nur um Slider, sondern auch um Datenstreams, Textfelder, Mouse, Tastatur, etc...
Also würde ich eine synchrone Abarbeitung gerne irgendwie generell für alle Fälle regeln.
Irgendwelche Ideen (z.B. über Behaviour) ??


Auf jeden Fall schon mal Danke für die Tipps, ich glaube dadurch bin ich auf den richtigen Weg
gestoßen, an das Problem ranzugehen ;-)
 

Marco13

Top Contributor
Das Wissen über die Threads ist eine Mischung aus "Allgemeinbildung" :wink: und stundenlangem Stöbern im Java3D-Quellcode. Wie gesagt: Das ist ziemlich komplex. Sort laufen spezielle Java3D-Threads, die Massenweise(!) irgendwelche ominösen Nachrichten in der Gegend rumschicken, und nachzuvollziehen, WANN genau dort WAS abgearbeitet wird, ist fast unmöglich. Es ist schon eine Weile her, dass ich mich damit rumgeschlagen habe. Aber ganz allgemein: Mit Behaviors sollte man das eigentlich irgendwie snychronisiert hinkriegen. Wie diese "synchronisation" bei Datenstreams(!?!) aussehen soll, musst du aber wissen :?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Schach Figuren bewegen Spiele- und Multimedia-Programmierung 4
B Spieler auf besonderer Bahn bewegen Spiele- und Multimedia-Programmierung 1
M Minecraft Spieler move/run (bewegen) Spiele- und Multimedia-Programmierung 0
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
A Spiel Figur ansprechen und bewegen Spiele- und Multimedia-Programmierung 3
G Auf einem Stick bewegen Spiele- und Multimedia-Programmierung 5
astro151 JButtons mit Mausklicks bewegen Spiele- und Multimedia-Programmierung 2
M bewegen eines Objektes Spiele- und Multimedia-Programmierung 2
L JavaFX Objekte bewegen Spiele- und Multimedia-Programmierung 3
M Kamera "am Rande einer Kugel bewegen" Spiele- und Multimedia-Programmierung 4
O Fehler bei Programmierung lässt Figur nicht bewegen Spiele- und Multimedia-Programmierung 5
javampir Lange Hintergrundgrafik einfügen und bewegen Spiele- und Multimedia-Programmierung 3
D Problem beim bewegen einer Figur Spiele- und Multimedia-Programmierung 2
R Canvas Circle bewegen? Spiele- und Multimedia-Programmierung 14
K auf Mapraster frei bewegen Spiele- und Multimedia-Programmierung 7
T Android OpenGL Bewegen Spiele- und Multimedia-Programmierung 5
K Zum Ziel bewegen Spiele- und Multimedia-Programmierung 4
Helgon Große Welt bewegen? Spiele- und Multimedia-Programmierung 15
A Wie wird die Person im Game animiert, dass sie ihre Körperteile bewegen? Spiele- und Multimedia-Programmierung 3
G 2D Welt bewegen Spiele- und Multimedia-Programmierung 20
V Jogl: Objekt trotz Rotation immer in gleiche Richtung bewegen Spiele- und Multimedia-Programmierung 5
M Figur bewegen Spiele- und Multimedia-Programmierung 7
F RPG - Spielfigur soll sich nicht frei bewegen können. Anregugen wären gerne gesehen^^ Spiele- und Multimedia-Programmierung 13
N Objekt entgegengesetzt bewegen Spiele- und Multimedia-Programmierung 8
D Sprite zur Maus bewegen Spiele- und Multimedia-Programmierung 9
S Mehrere Steine gleichzeitig setzen und bewegen Spiele- und Multimedia-Programmierung 4
V Java3D: automatisches Bewegen der Kamera Spiele- und Multimedia-Programmierung 19
2 Kugel bewegen? Spiele- und Multimedia-Programmierung 17
L Figur soll sich selbständig Bewegen Spiele- und Multimedia-Programmierung 12
G Zeichnung mit der Maus bewegen Spiele- und Multimedia-Programmierung 3
H mit Java2D Markierung über JTable zeichnen und diese bewegen Spiele- und Multimedia-Programmierung 2
A Bilder bewegen Spiele- und Multimedia-Programmierung 2
Z Obejkt drehen & vorwärts bewegen Spiele- und Multimedia-Programmierung 9
D nicht 4-eckiges bild auf Hintergrund bewegen Spiele- und Multimedia-Programmierung 2
G Bewegen von Objekten Spiele- und Multimedia-Programmierung 4
B Hilfe gesucht!! (bewegen von grafischen Objekten) Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben