Darstellung einer tierischen Zelle

Status
Nicht offen für weitere Antworten.

Flocke

Mitglied
Hallo Leute,
ich versuche schon seit Tagen eine Zelle zu simulieren, doch irgendwie fehlt mir wohl das Verständnis der Funktionsweise einiger Klassen bzw. deren Methoden.

Das Ziel ist folgendes:
Es soll eine Zellmembran dargestellt werden, die mit unterschidlichen Zellkomponenten (Nukleus, Metochondrien, usw.) gefüllt werden muss. Dabei soll die Plazierung zufällig erfolgen, so dass die Zelle bei jedem Aufruf unterschiedlich aussieht.

Da sind wir auch schon bei meinem Problem :cry: .
Ich wollte die Zelle Schritt für Schritt füllen. Die Zellmembran lege im Nullpunkt hin. Für die nächste Zellkomponente erzeuge ich einen Point3d und übergebe ihn an deren Transform3d. Als nächstes wollte ich testen, ob es durch diese Transformation evtl. zur Überschneidung der neuen Zellkomponente mit der Zellmembran gekommen ist. Wenn ja, soll eine entsprechende Korrektur vorgenommen werden, sonst kann nach dem gleichen Prinzip eine weitere Komponente eingefügt werden, die dann natürlich mit allen hervorgehenden Objekten auf Kollision überprüft werden soll.

Nach dem Studium von API und vielem stöbern durch die Foren und Tutorials, schien es mir am logischsten die Klasse PickTool für meine Zwecke zu verwenden.

Doch anscheinend ist das doch nicht das Richtige. Wenn ich versuche mit PickTool mögliche Kollisionen zu ermitteln, kommt eine Meldung
java.lang.IllegalStateException: Picking can only work if BranchGroup is alive
Alive soll er aber erst werden, nachdem im Hintergrund alle notwendigen Berechnungen abgeschlossen sind.
Weiß jemand vielleicht einen Rat?
Vielen Dank für jede Hilfe.
Flocke
 

Flocke

Mitglied
Hat denn gar keiner eine Idee, wie man so was realisieren könnte? Weiß jemand vielleicht von anderen Programmiersprachen, wo man so was programmieren kann? Es muss dabei noch die Möglichkeit bestehen, Bilder in .wrl Format einzulesen. Es ist für mich sehr, sehr wichtig (Projektaufgabe).
Gruß. Flocke
 

Flocke

Mitglied
Sorry, dass es so lange gedauert hat, hatte die Tage sehr viel um die Ohren. Hier ist eins von vielen Beispielen, die ich versucht habe:
Code:
public BranchGroup createSceneGraph(){
		
		 wurzel = new BranchGroup();
		 
		 picktool = new PickTool(wurzel);
		 TransformGroup transform_gruppe=new TransformGroup();
		 TransformGroup transform_gruppe2;
		 transform_gruppe_gr_kugel.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
		 transform_gruppe_gr_kugel.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		 Transform3D transform3d=new Transform3D();
		
		 Appearance aussehen_gr_kugel=new Appearance(),aussehen_kl_kugel=new Appearance();
		
//		 Licht
		 AmbientLight gleichmaessiges_licht=new AmbientLight(new Color3f(1f,1f,1f));
		 DirectionalLight direktes_licht=new DirectionalLight(new Color3f(1f,1f,1f),new Vector3f(-0.5f,-0.5f,-1f));
		 BoundingSphere licht_grenze=new BoundingSphere(new Point3d(),100000);
		 gleichmaessiges_licht.setInfluencingBounds(licht_grenze);
		 direktes_licht.setInfluencingBounds(licht_grenze);
		 
//                      große Kugel anstelle einer Membran
		 Sphere gr_kugel = new Sphere(0.9f,Sphere.GENERATE_NORMALS,40,aussehen_gr_kugel);
		 aussehen_gr_kugel.setMaterial(new Material(new Color3f(0f,0f,1f),new Color3f(0f,0f,0f),new Color3f(1f,0f,0f),new Color3f(1f,1f,1f),100f));
		 aussehen_gr_kugel.setTransparencyAttributes(new TransparencyAttributes(TransparencyAttributes.NICEST,0.6f));
		 gr_kugel.setCollidable(true);
		
		 gr_kugel.setCapability(Sphere.ALLOW_COLLIDABLE_READ);
		 gr_kugel.setCapability(Sphere.ALLOW_COLLIDABLE_WRITE);
		 gr_kugel.setCapability(Sphere.GEOMETRY_NOT_SHARED);
		 gr_kugel.setCapability(Sphere.ALLOW_PICKABLE_READ);
		 
		 transform_gruppe_gr_kugel.addChild(gr_kugel);
		
		 
//		Shape3D anstelle von dem Zellkern

		 BranchGroup bgnucleus = new BranchGroup();
		 transform_gruppe.addChild(bgnucleus);
		 Shape3D nucleus = new Box(0.6, 0.6, 0.6);

		 nucleus.setAppearance(aussehen_gr_kugel);
		 nucleus.setCollidable(true);
		 nucleus.setPickable(true);
		 nucleus.setCapability(Shape3D.ALLOW_PICKABLE_READ);
		 nucleus.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
		 nucleus.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE);
		 nucleus.setCapability(Shape3D.ALLOW_COLLIDABLE_READ);
		 nucleus.setCapability(Shape3D.ALLOW_COLLIDABLE_WRITE);

		 Vector3d vec = zufall.setPosition("nucleus");
		 transform3d = new Transform3D();
		 transform3d.setTranslation(vec);
		 transform_gruppe.setTransform(transform3d);
		 
		 picktool = new PickTool(wurzel);
		 picktool.setMode(PickTool.GEOMETRY);
		 
//		 PickTool.setCapabilities(wurzel.cloneNode(true), 0);
		 
		 Point3d p3d = new Point3d(vec.getX(), vec.getY(), vec.getZ());
		 picksegin = new PickSegment(origin, p3d);

		 PickResult [] pickresult = picktool.pickAll();
		 int length = pickresult.length;

		 for (int i=0; i<length; i++){
			 System.out.println("GeometrieDaten: "+pickresult[i].getGeometryArray());
		 }

                         picktool.setShape(picksegin, p3d);
		 PickResult pr = picktool.pickClosest();

		 transform_gruppe.addChild(nucleus);
		 transform_gruppe_gr_kugel.addChild(transform_gruppe);
		 
//		Rotation mit der Maus
		 MouseRotate MouseCtrl=new MouseRotate(transform_gruppe_gr_kugel);
		 MouseCtrl.setSchedulingBounds(licht_grenze);
				 
		 wurzel.addChild(MouseCtrl);
		 wurzel.addChild(gleichmaessiges_licht);
		 wurzel.addChild(direktes_licht);
		 wurzel.addChild(transform_gruppe_gr_kugel);
		 wurzel.compile();
		 return wurzel;
	}

Der Code ist von mir nicht besonders gut kommentiert, also, wenn es Fragen gibt nur zu.
Was ich hier versuche ist folgendes. Ich erzeuge eine große Kugel anstelle einer Membran und übergebe sie einfach an meine Haupt-TransformGroup. Die gr_kugel sitzt dann genau in der Mitte des SceneGraphen. Als Nächstes kreire ich ein Shape3D, welches den Zellkern darstellen soll. Für die Plazierung erzeuge ich einen Zufallspunkt. Diesen Punkt bekommt das Transform3D-Objekt vom nucleus. Nun gibt es drei Möglichkeiten:
1. der nucleus liegt komplett in der gr_kugel (gewünscht)
2. nucleus und gr_kugel überschneiden sich
3. nucleus liegt außerhalb der gr_kugel
Meine Idee war, eine Überprüfung vom Zufallspunkt aus ein Mal zum Mittelpunkt des SceneGraphen hin und einmal auf der Geraden, die durch Mittelpunkt und Zufallspunkt läuft, vom Zufallspunkt nach Außen durchzuführen. Aber wenn ich es mir jetzt überlege, wäre es wohl nicht ausreichend gewesen. Ich muss ja berücksichtigen, dass dieser Punkt nich der äußere Rand meines Objektes ist. Ach ja. Jetzt weiß ich gar nicht mehr weiter.
Hat vielleicht jemand eine Idee?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Darstellung einer schwingenden Membran? Spiele- und Multimedia-Programmierung 23
E TexturePaint Isometrische Darstellung Spiele- und Multimedia-Programmierung 3
M schematische Darstellung TicTacToe Spiele- und Multimedia-Programmierung 7
A Methoden zur flüssigen Darstellung von Spielen Spiele- und Multimedia-Programmierung 7
A Probleme mit Darstellung von Umgebungen mittels mehrdimensionaler Arrays Spiele- und Multimedia-Programmierung 8
L Korrekte Darstellung von Wasser in 2D Spiel Spiele- und Multimedia-Programmierung 4
c_sidi90 Isometrische Darstellung Spiele- und Multimedia-Programmierung 3
L Lwjgl Darstellung eines Kreises im Raum Spiele- und Multimedia-Programmierung 3
A Schnelle 2D darstellung Spiele- und Multimedia-Programmierung 12
S Jogl Problem bei Darstellung Spiele- und Multimedia-Programmierung 9
C Grafische Darstellung der Mandelbrotmenge Spiele- und Multimedia-Programmierung 3
S Fehlerhafte Darstellung durch Transparenz? Spiele- und Multimedia-Programmierung 8
egrath [Java3D] Keine Darstellung trotz Geometrie und Licht Spiele- und Multimedia-Programmierung 6
C Darstellung von Datensätzen mit Beziehungen in Java? Spiele- und Multimedia-Programmierung 6
YangLee Ausgabe von einer Bewegung bei mehrzeiligen Strings Spiele- und Multimedia-Programmierung 1
E relevanter bereich einer isometrischen karte zeichnen (AffineTransform) Spiele- und Multimedia-Programmierung 0
M Audio Track einer Musik CD abspielen mittels vlcj-Bibliothek Spiele- und Multimedia-Programmierung 0
Meeresgott LWJGL 3 Problem mit einer Texture Spiele- und Multimedia-Programmierung 4
D Programmierung einer Tor-Anzeige Spiele- und Multimedia-Programmierung 8
C Optimale Wegberechnung einer KI Spiele- und Multimedia-Programmierung 6
T Pong Hilfe bei einer Website Spiele- und Multimedia-Programmierung 4
R Einfärben von Gemeinden auf einer Karte Spiele- und Multimedia-Programmierung 14
S ECS: "deep copy" einer Entity-Vorlage Spiele- und Multimedia-Programmierung 9
R Aufruf einer render-Methode Spiele- und Multimedia-Programmierung 12
E A-Stern Algorithmus Problem und Implementierung einer Map Spiele- und Multimedia-Programmierung 6
J Frage zum Einlesen einer .wav in ein byte Array Spiele- und Multimedia-Programmierung 3
J Spielfiguren laufen lassen auf einer html Tabelle mit Hilfe von Servlets Spiele- und Multimedia-Programmierung 2
T Alle Referenzen zu einer Klasse aus Java Bytecode ersetzt, JVM sucht trotzdem diese Klasse Spiele- und Multimedia-Programmierung 1
M Kamera "am Rande einer Kugel bewegen" Spiele- und Multimedia-Programmierung 4
B Den KeyListener in einer JavaFXML Application benutzen Spiele- und Multimedia-Programmierung 2
gamebreiti Index eines Elements einer ArrayList abfragen Spiele- und Multimedia-Programmierung 1
F Das sag mir einer Java ist plattform unabhänig ! Spiele- und Multimedia-Programmierung 10
M Scrolling einer 2D Map Spiele- und Multimedia-Programmierung 8
J In einer While-Schleife auf Event warten Spiele- und Multimedia-Programmierung 3
TheSorm Collision an einer bestimmten Seite eine Rectangles abfragen Spiele- und Multimedia-Programmierung 3
windl Frage zu Airplay und zur Mitarbeit bei einer Mediaanlage Spiele- und Multimedia-Programmierung 0
A Aufbau einer JOGL Anwendung Spiele- und Multimedia-Programmierung 12
L Werte aus einer .yml Datei lesen Spiele- und Multimedia-Programmierung 9
H Java3D - Textur aufs innere einer Sphere mappen Spiele- und Multimedia-Programmierung 9
F Download und Update einer Java-Anwendung Spiele- und Multimedia-Programmierung 10
D Problem beim bewegen einer Figur Spiele- und Multimedia-Programmierung 2
B Video von einer IP kamera Spiele- und Multimedia-Programmierung 5
W Java3D: Eckkoordinaten einer Box herausfinden Spiele- und Multimedia-Programmierung 18
W Rotation aller Objekte einer 3D-Szene Spiele- und Multimedia-Programmierung 8
2 Ein Zufallsweg bzw. Weg in einer 2dim Matrix finden. Spiele- und Multimedia-Programmierung 21
aze Schnittmenge zwischen Linie und einer Area wegschneiden Spiele- und Multimedia-Programmierung 3
A Bild einer Webcam auffangen Spiele- und Multimedia-Programmierung 20
G Ballerkennung aus einer Bilddatei Spiele- und Multimedia-Programmierung 24
B Generierung einer Wertetabelle aus einem Bild Spiele- und Multimedia-Programmierung 3
D Problem beim Öffnen einer PHP für eine Highscore Spiele- und Multimedia-Programmierung 5
M Realisierung einer Sichtweise in Java2D Spiele- und Multimedia-Programmierung 3
B String zu Objekt einer eigenen Klasse casten Spiele- und Multimedia-Programmierung 13
H Screenshot einer Graphics2D Anwendung erstellen Spiele- und Multimedia-Programmierung 6
F Simulation einer Magnetischen Flasche Spiele- und Multimedia-Programmierung 17
F Meine Aufgabe: Client-Server am Beispiel einer Implementation eines Tic-Tac-Toe Netzwerkspieles Spiele- und Multimedia-Programmierung 7
J Fehlverhalten einer Spielfigur Spiele- und Multimedia-Programmierung 7
N Jogl Probleme mit dem Buffer beim laden einer Textur Spiele- und Multimedia-Programmierung 2
M Das Frequenzspektrum einer WAV/MP3-Datei anzeigen Spiele- und Multimedia-Programmierung 6
M Rechteck erkennung innerhalb einer Matix Spiele- und Multimedia-Programmierung 4
S Problem beim laden eines Bildes in einer Methode Spiele- und Multimedia-Programmierung 14
E Pinball Abprall an einer schrägen Bande Spiele- und Multimedia-Programmierung 19
0x7F800000 weiß einer wozu ANTLR beim build von JOGL verwendet wird? Spiele- und Multimedia-Programmierung 3
E Hilfe bei einer GUI Programmierung mit Graph Spiele- und Multimedia-Programmierung 30
A Tutorial für die Entwicklung einer Fussball-KI gesucht Spiele- und Multimedia-Programmierung 7
S Rotation relativ zur Rotation einer anderen Transform Group Spiele- und Multimedia-Programmierung 3
A Screenshots von einer Scene erstellen Spiele- und Multimedia-Programmierung 5
G Land aus einer Weltkarte selektieren Spiele- und Multimedia-Programmierung 10
D Kräftesimulation auf einer 2D-Oberfläche Spiele- und Multimedia-Programmierung 5
T Geschwindigkeit einer Animation aendern Spiele- und Multimedia-Programmierung 6
G Ermitteln eines Punktes in einer anderen TransformGroup Spiele- und Multimedia-Programmierung 2
N Background in Java3D ähnlich einer Skybox erzeugen Spiele- und Multimedia-Programmierung 5
H zB Punkte darstellen und mit einer Linier verbinden Spiele- und Multimedia-Programmierung 5
S Text an einer Seite eines Cubes Spiele- und Multimedia-Programmierung 7
F Das SPiel ruckelt nach einer Zeit Spiele- und Multimedia-Programmierung 19
D wieder einer von anfang an. Spiele- und Multimedia-Programmierung 4
raptorrs Teile einer CAD-Assembly Gruppe in JAVA animieren? Spiele- und Multimedia-Programmierung 3
K Beschriftung von Punkten in einer "Punktwolke" Spiele- und Multimedia-Programmierung 2
S Zur Laufzeit auf die Methode einer anderen Klasse zugreifen Spiele- und Multimedia-Programmierung 5
K Klick in der nähe einer Strecke Spiele- und Multimedia-Programmierung 14

Ähnliche Java Themen

Neue Themen


Oben