Thread in Java3D

Status
Nicht offen für weitere Antworten.

Developer_X

Top Contributor
Hi, ich habe mich mal an meinen ersten Thread in Java3D gewagt, da die Threads meiner Meinung nach eigentlich ziemlich praktisch sind,
ich will mit meinem Thread die x coordinate eines Transform3D's immer um eins erhöhen, nach einem zehntel einer sekunde,
außerdem habe ich die System.out.println-Methode in den Thread eingebaut, um immer die aktuelle Position der x coordinate zu bekommen, aber sie bewegt sich trotzdem nicht wieso?
Code:
import java.awt.Dimension;
import java.awt.GraphicsConfiguration;
import java.awt.Toolkit;
import javax.media.j3d.AmbientLight;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.swing.JFrame;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3d;
import javax.vecmath.Vector3f;

import com.sun.j3d.utils.geometry.Box;
import com.sun.j3d.utils.universe.SimpleUniverse;

public class Trailer_3 extends JFrame
{
    float pos = 1;
	SimpleUniverse u;
	  public Trailer_3()
	  {
		  Toolkit tk = Toolkit.getDefaultToolkit();
		    final Dimension d = tk.getScreenSize();		 	
		    
		    setSize(d);
		    setTitle("R.a.t.r.o.t.c.p.");
		 
		    setUndecorated(true);
		    
		    setVisible(true);
		    setLayout(null);
		    
		     GraphicsConfiguration config1 = SimpleUniverse.getPreferredConfiguration();
		     Canvas3D canvas1 = new Canvas3D(config1);
		  	 canvas1.setBounds(0,0,d.width,d.height);
		  	 u = new SimpleUniverse(canvas1);
		  	 u.addBranchGraph(createSceneGraph1());
		  	 add(canvas1);
	  }
	  
	  public BranchGroup createSceneGraph1()
	     {
	     BranchGroup          BG = new BranchGroup();
	    ///Lights
	     //1
	     AmbientLight         L1 =new AmbientLight(new Color3f(0.8f,0.8f,0.8f));
	     Point3d p1 = new Point3d(0,0,0);	     
	     BoundingSphere       LB1 =new BoundingSphere(p1,100000);
	     L1.setInfluencingBounds(LB1); BG.addChild(L1);
	    
	    ///Real World
	     Transform3D a = new Transform3D();
	     a.setTranslation(new Vector3d(0,0,0));
	     TransformGroup A = new TransformGroup();
	     A.setTransform(a);BG.addChild(A); A.addChild(new Box(20,0,0, null));
	     
//////////
[highlight]
	     //View Initialisation
	     TransformGroup ViewTG = new TransformGroup();
	     ViewTG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
	     final Transform3D ViewT3D = new Transform3D();
	     ViewTG=u.getViewingPlatform().getViewPlatformTransform();
	     ViewTG.getTransform(ViewT3D);
	     final Vector3f vct = new Vector3f(pos,0,0);
	     ViewT3D.setTranslation(vct);
	     ViewTG.setTransform(ViewT3D);
	     
(new Thread(){@Override public void run(){while(!isInterrupted()){       
	   				pos = pos + 1;
	   				System.out.println(vct.getX());
try{sleep(100);}catch(InterruptedException e){interrupt();}}}}).start();
	[/highlight]		
//////////	     
	     BG.compile();
	     return BG;
	     }
	  public static void main(String[]args)
	  {
		  new Trailer_3();
	  }
	public static void warte(long millis){try{Thread.sleep(millis);}catch(InterruptedException e){}}
}
@ADMIN:
ich hab diesmal wieder den Code genutzt, um mit highlight die TextStellen rot zu färben
 
Zuletzt bearbeitet:

FatFire

Bekanntes Mitglied
Weil einfache Variablen immer als Wert und nicht als Referenz übergeben werden. Daher muss das nach einer Änderung von pos auch neu zugeteilt werden.
[HIGHLIGHT="Java"]pos = pos + 1;
vct.setX(pos);
System.out.println(vct.getX());[/HIGHLIGHT]

Ach, Developer_X: Mal abgesehen davon, dass Du sowas eigentlich nach über 300 Beiträgen in einem Java-Forum wirklich wissen solltest...Du hast auch einen übelst besch...eidenen Programmierstil, da kann einem ja echt die Galle hochkommen:
[HIGHLIGHT="Java"]try{sleep(100);}catch(InterruptedException e){interrupt();}}}}).start();[/HIGHLIGHT]
Du kannst mir nicht ernsthaft weismachen, dass Du mit Deinen Programmierkenntnissen auf einen schnellen Blick hin weißt, was Du in der Zeile zusammengeköttelt hast.
Und gewöhn Dir endlich mal KSKB für Deine Miniproblemchen an.
 

hdi

Top Contributor
Developer,

Threads sind eine heftige Sache. Ich sehe es schon kommen, wir werden dir demnächst
dein Programm debuggen müssen weil du Race Conditions reinprügelst.
Du bist nicht bereit für Threading, ob du's glaubst oder nicht.

Wenn du aber die Basics weiterhin skippen willst, und gleich zu Threads übergehen willst,
dann behandele das Thema aber wenigstens vollständig. -> Java-Insel zB

Du musst wissen:
- Warum beendet man Threads nicht mit interrupt() (wie du es tust)
- Was sind Race Conditions
- Was ist Synchronisation
- Was sind Deadlocks
- die Object-Methoden wait()/notify[All]()

Mach dir ein TestProjekt und spiel erstmal mit Threads rum. Ich weiss nicht inwiefern
Java3D eine Art EDT nutzt, das wäre dann in deinem Fall nochmal n spezielles Thema.
Aber vllt verträgt sich das ja, ich kenn mich mit Java3D nicht aus
(weil ich seit 2 Jahren täglich Neues über Java lerne, und weiss, dass ich noch nicht bereit
bin für irgendwelche Frameworks wie Java3D, solange ich noch nicht die Basics zu 1000% drinnen hab!)

edit: Sagen wir mal so, was heisst schon "bereit"? Aber es gibt wichtigeres, wie die SE eben.

Viel Spaß dabei :)
 
Zuletzt bearbeitet:

Marco13

Top Contributor
FatFire's erster Hinweis war schon richtig, allerdings reicht es meines wissens auch nicht, das im Vector3f neu zu setzen. Statt des

pos = pos+1;

wäre wohl mindestens ein

Vector3f vct = new Vector3f(pos,0,0);
ViewT3D.setTranslation(vct);

notwendig, wenn mich nicht alles täuscht sogar ein

Transform3D ViewT3D = new Transform3D();
Vector3f vct = new Vector3f(pos,0,0);
ViewT3D.setTranslation(vct);
ViewTG.setTransform(ViewT3D);


Vielleicht sollte man noch erwähnen, dass sein ZWEITER Hinweis, und der von hdi, auch richtig waren.... :rolleyes:
 

Marco13

Top Contributor
Das war je kein Hinweis, sondern eine Frage :) (Und eine quasi-rethorische noch dazu - "Wie soll ich denn sonst eine Ebene hinkriegen? ;( " ;)
 

FatFire

Bekanntes Mitglied
FatFire's erster Hinweis war schon richtig, allerdings reicht es meines wissens auch nicht, das im Vector3f neu zu setzen.
Hm, joh, kann sein.:oops:
Ich mach meinen 3D-Kram normal mit JOGL, daher ist das mit dem Java3D bei mir nicht so dolle. War mir nicht sicher, wenn die Sachen erstmal in dem Baum drin sind (keine Ahnung wie das bei Java3D heißt), ob so kleine Änderungen dann ausreichen um dargestellt zu werden oder ob dann wirklich alles neu gebunden werden muss.
Ich oute mich auch gerne als recht faul, wenn es um die Antwortvorbereitungen bei seinen Threads geht, er gibt sich ja auch keine Mühe.

Gruß FatFire
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Minecraft PlayerBot (Listener Thread für jeden Spieler?) Spiele- und Multimedia-Programmierung 3
H Exeption in thread "Thread-2" NullPointerExeption: init methode? Spiele- und Multimedia-Programmierung 25
O Thread pausieren und wieder starten Spiele- und Multimedia-Programmierung 2
kaoZ Animation in eigenen Thread auslagern..... Spiele- und Multimedia-Programmierung 1
gamebreiti Daemon Thread Spiele- und Multimedia-Programmierung 4
M Point & Click Thread Probleme Spiele- und Multimedia-Programmierung 20
N JPanel Inhalt aktualisiert nach Thread.sleep nicht Spiele- und Multimedia-Programmierung 2
S Thread und jpanel-paintcomponent kombinierbar?? Spiele- und Multimedia-Programmierung 14
Kenan89 Alternative zu Thread Runnable Spiele- und Multimedia-Programmierung 2
O Universe <- show Thread Spiele- und Multimedia-Programmierung 14
Y Warum Thread für Spieleprogrammierung? Spiele- und Multimedia-Programmierung 27
C ***** bitte thread löschen *** Spiele- und Multimedia-Programmierung 3
A KeyListener - Thread Problem Spiele- und Multimedia-Programmierung 2
D Snake n+1-Thread Spiele- und Multimedia-Programmierung 2
B Applet startet, aber führt den Thread nicht aus Spiele- und Multimedia-Programmierung 7
S Ein Thread für alle Animationen oder mehrere? Spiele- und Multimedia-Programmierung 2
G Thread startet nicht im Vollbild modus Spiele- und Multimedia-Programmierung 3
E TetrisApplet Thread Hilfe Spiele- und Multimedia-Programmierung 6
D Methode in eigenem Thread auslagern Spiele- und Multimedia-Programmierung 9
S Probleme mit Thread beim Streaming Spiele- und Multimedia-Programmierung 1
F Problem mit Thread.sleep() Spiele- und Multimedia-Programmierung 7
Tapsi Thread wartet auf Threads Spiele- und Multimedia-Programmierung 7
M Thread.sleep() problem Spiele- und Multimedia-Programmierung 10
0 Workaround für Thread.sleep()-Bug Spiele- und Multimedia-Programmierung 15
M Roundbased - Thread anhalten Spiele- und Multimedia-Programmierung 8
D Wasserstrahl animieren: ein Thread je Tropfen? Spiele- und Multimedia-Programmierung 7
S Thread unterbrechen Spiele- und Multimedia-Programmierung 3
N Java3d in Eclipse einbinden Spiele- und Multimedia-Programmierung 4
Neumi5694 Java3D Viewer Beschriftung Spiele- und Multimedia-Programmierung 1
C Java3D Transformieren von obj. Datein Spiele- und Multimedia-Programmierung 0
M Cylinder anhand eines Vektors ausrichten (Java3d) Spiele- und Multimedia-Programmierung 0
Ruvok Java3D Tutorial gesucht Spiele- und Multimedia-Programmierung 5
U Hilfe bei Implementierung eines PointSounds in Java3D Spiele- und Multimedia-Programmierung 1
R Java3d ViewingPlatform erst Verschieben und dann RotationsInterpolator Spiele- und Multimedia-Programmierung 0
D Java3D - Blickfeld Spiele- und Multimedia-Programmierung 1
P Java3D Box Dimensionen und Positionierung Spiele- und Multimedia-Programmierung 1
E Java3D Objekt skalieren per JSlider/JButton Spiele- und Multimedia-Programmierung 10
S Java3D: Primitives zu einem Objekt kombinieren Spiele- und Multimedia-Programmierung 7
J Java3D - Textur laden geht nicht Spiele- und Multimedia-Programmierung 9
J Java3D - Farben vermischen sich Spiele- und Multimedia-Programmierung 7
T Java3D Rendering Problem Spiele- und Multimedia-Programmierung 7
S Java3D oder JMonkey? Spiele- und Multimedia-Programmierung 17
H Java3D - Textur aufs innere einer Sphere mappen Spiele- und Multimedia-Programmierung 9
C java 3d ohne Java3d Spiele- und Multimedia-Programmierung 28
Maxim6394 [Java3D] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Maxim6394 [Java3D] lookAt Mausposition Spiele- und Multimedia-Programmierung 17
Maxim6394 [Java3D] Probleme mit KeyFrame Animationen Spiele- und Multimedia-Programmierung 9
K Java3D als Applet ohne Installation von Java3d Spiele- und Multimedia-Programmierung 6
D Java3D Installation: package javax.media.j3d not found Spiele- und Multimedia-Programmierung 5
C Java3D Texture Mapping Spiele- und Multimedia-Programmierung 2
W Java3D: Kanten die hinter einem Objekt liegen werden gezeigt Spiele- und Multimedia-Programmierung 2
W Java3D: Farbe von Objekten stimmt nicht mit übergebenem RGB-Wert überein Spiele- und Multimedia-Programmierung 9
M Eigene Renderengine ohne Java3D,etc. Spiele- und Multimedia-Programmierung 19
C Java3D Sound spielt nur einen Sound ab. Spiele- und Multimedia-Programmierung 8
A JAVA3D TransformGroup <--> Group Problem Spiele- und Multimedia-Programmierung 3
M [Java3D] Animation von mehreren Objekten Spiele- und Multimedia-Programmierung 7
W Java3D: Eckkoordinaten einer Box herausfinden Spiele- und Multimedia-Programmierung 18
T Java3D: Objekte platzieren und entfernen? Spiele- und Multimedia-Programmierung 7
T Java3D: Nur die Kanten des Würfels rendern? Spiele- und Multimedia-Programmierung 4
W Java3D setBounds(BoundingBox) Spiele- und Multimedia-Programmierung 6
T [gelöst] Java3D: Unerwünschte Rotation um die 3.Achse vermeiden? Spiele- und Multimedia-Programmierung 3
Bastie JAVA3D - WRL Transform Spiele- und Multimedia-Programmierung 9
G Eclipse Problem mit Java3d Spiele- und Multimedia-Programmierung 3
T Java3D - Lichtquelle einbauen Spiele- und Multimedia-Programmierung 7
jemandzehage java3d parallel und perspective view Spiele- und Multimedia-Programmierung 5
H Cinema 4D in Java3D importieren Spiele- und Multimedia-Programmierung 2
1 [Java3D] komplexes Projekt? Spiele- und Multimedia-Programmierung 10
P .obj-Datei in Java3D laden: ParsingErrorException Spiele- und Multimedia-Programmierung 7
C Java3D Lichtquelle beim Beobachter Spiele- und Multimedia-Programmierung 2
C Java3D Interaktion während Animation Spiele- und Multimedia-Programmierung 3
aze Java3D: Flächen teilen Spiele- und Multimedia-Programmierung 15
P Java3D Textur verzerrt Spiele- und Multimedia-Programmierung 3
aze Java3D: Gegenstände aufeinander zubewegen ohne Kollision Spiele- und Multimedia-Programmierung 4
D [JAVA3D] Es werden 2 Fenster erzeugt und auf dem falschen gezeichnet Spiele- und Multimedia-Programmierung 3
aze Java3D: leere Räume füllen Spiele- und Multimedia-Programmierung 2
aze Java3d:Helligkeit von Shape3D ändern Spiele- und Multimedia-Programmierung 2
S Einschätzung zu Java3D-Einstieg Spiele- und Multimedia-Programmierung 3
F Programm mit Java3D unter Linux laufen lassen Spiele- und Multimedia-Programmierung 3
I Vergleich von Java3D und OpenGL Spiele- und Multimedia-Programmierung 17
W Waterslide mit Java3D Spiele- und Multimedia-Programmierung 11
M Java3D Picking - falsche Objekte werden gepickt Spiele- und Multimedia-Programmierung 3
M [Java3D] Rotieren der Scene NICHT des POV Spiele- und Multimedia-Programmierung 4
F Jogl oder Java3D ? Spiele- und Multimedia-Programmierung 20
K Java3D Abfängerfrage Spiele- und Multimedia-Programmierung 3
aze Java3D:Farbige Flächen verschwinden lassen(Transparenz- oder Colorinterpolator?)) Spiele- und Multimedia-Programmierung 5
C Java3D PositionInterpolator Spiele- und Multimedia-Programmierung 3
G [Java3D] Probleme bei Animation Spiele- und Multimedia-Programmierung 4
E [JAVA3D] Kamerasteuerung Spiele- und Multimedia-Programmierung 3
E [JAVA3D] Schattenstrich durch die Szene Spiele- und Multimedia-Programmierung 4
M Grundsätzliche Java3D Fragen Spiele- und Multimedia-Programmierung 2
C Java3D SceneGraohPath Spiele- und Multimedia-Programmierung 2
C Java3D Rotation um einen Punkt (y-achse) Spiele- und Multimedia-Programmierung 2
G Java3D plattformunabhängig bundeln Spiele- und Multimedia-Programmierung 3
TheKing Java3D-Shooter View Spiele- und Multimedia-Programmierung 2
A Java3D tutorial? Spiele- und Multimedia-Programmierung 3
R Java3D Kollisionserkennung und Schwerkraft Spiele- und Multimedia-Programmierung 17
M Java3D Objekte entfernen und hinzufügen Spiele- und Multimedia-Programmierung 10
J Java3d Schnelle Geschosse Spiele- und Multimedia-Programmierung 12
D Kann ich mit Java3D 2D Daten als 3D surfaceplot plotten? Spiele- und Multimedia-Programmierung 5
J Java3d setTextureTransform verändert J3DGraphics2D Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben