matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenLineare Algebra - Moduln und VektorräumeDrehen eines Vektors im R3
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
Forum "Lineare Algebra - Moduln und Vektorräume" - Drehen eines Vektors im R3
Drehen eines Vektors im R3 < Moduln/Vektorraum < Lineare Algebra < Hochschule < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Lineare Algebra - Moduln und Vektorräume"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Drehen eines Vektors im R3: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 11:57 Fr 07.12.2012
Autor: Paddi

Hallo,

ich habe ein Problem, welches in den Bereich der Darstellung von Vektoren in einem R3-Koordinatensystem fällt.
Ich möchte in JAVA FX solche Vektoren in einem Koordinatensysem zeichnen. Diese Vektoren haben als Stützvektor einen (0 0 0)-Vektor, entstehen also aus dem Koordinatenursprung.

Nun ist es in JAVA FX so, dass man zwar in 3 Dimensionen Objekte (z.B. Geraden, welche ich dafür nutze die Vektoren darzustellen) zeichnen kann, dies jedoch zunächst nur in 2 Dimensionen tun kann.
Es ist jedoch möglich das gezeichnete Objekt anschließend an allen drei Achsen nacheinander so zu drehen, dass es das gewünschte Objekt im R3 wird.

Vorgehensweise:

Man zeichnet eine Gerade, welche den Vektor darstellt auf die X-Y-Ebene.
Anschließend kann diese entsprechend gedreht werden.

Bei der Art, wie man dann die verschiedenen Drehschritte durchläuft, bin ich mir unsicher:

Gehen wir davon aus, dass wir den Vector x = (1 2 3) haben. Dieser soll am Ende im Koordinatensystem angzeigt werden.
Die |x| = 3,74. Da ich den Vektor bereits mit der korrekten Länge zeichnen möchte, habe ich jetzt einfach mal naiv im ersten Schritt die Gerade auf die X-Achse gezeichnet. Dort bilde ich also einen Vektor
xStrich = (3,74 0 0) ab.
Dies ist die Ausgangslage.

Nun projeziere ich x in die Ebene Z-X und berechne den Winkel-Abstand zwischen Projektion(x) und xStrich.
Dann drehe ich xStrich entsprechend des vorher berechneten Abstandes auf die Position von Projektion(x).
Dann habe ich nach meinem Verständnis schon mal die X-Richtung von x.

Dann folgt der nächste Schritt:
Ich projeziere x in die Y-Z-Ebene und berechne den Abstand von dieser Projektion zur Z-Achse. Um diesen Winkel drehe ich nun xStrich an der X-Achse auf die Position der Projektion.
Nun sollte die Y-Richtung auch stimmen.

Nun habe ich mir gedacht, dass ich dass gleiche nochmal an der Y-X-Ebene mit der Z-Richtung von x vornehme.

Das Problem:
Es kommt am Ende nicht der Vektor heraus, den ich haben möchte. Irgendwelche Komponenten im Ergebnis-Vektor schießen da aus der Reihe.

Ich habe das ganze so schon runter programmiert und mit einer Vielzahl von verschiedenen Vektoren, die in den verschiedenen Quadranten liegen ausprobiert.

Es wäre nett, wenn sich jemand dieses Verfahren mal anschauen könnte.
Bitte entschuldigt, dass ich bei der Darstellung der Vektoren nicht die korrekte Schreibweise genutzt habe. Ich denke, es sollte aber klar sein, was ich meine.

        
Bezug
Drehen eines Vektors im R3: kompliziert ...
Status: (Antwort) fertig Status 
Datum: 12:21 Fr 07.12.2012
Autor: Al-Chwarizmi


> Hallo,
>  
> ich habe ein Problem, welches in den Bereich der
> Darstellung von Vektoren in einem R3-Koordinatensystem
> fällt.
>  Ich möchte in JAVA FX solche Vektoren in einem
> Koordinatensysem zeichnen. Diese Vektoren haben als
> Stützvektor einen (0 0 0)-Vektor, entstehen also aus dem
> Koordinatenursprung.
>  
> Nun ist es in JAVA FX so, dass man zwar in 3 Dimensionen
> Objekte (z.B. Geraden, welche ich dafür nutze die Vektoren
> darzustellen) zeichnen kann, dies jedoch zunächst nur in 2
> Dimensionen tun kann.
>  Es ist jedoch möglich das gezeichnete Objekt
> anschließend an allen drei Achsen nacheinander so zu
> drehen, dass es das gewünschte Objekt im R3 wird.
>  
> Vorgehensweise:
>  
> Man zeichnet eine Gerade, welche den Vektor darstellt auf
> die X-Y-Ebene.
>  Anschließend kann diese entsprechend gedreht werden.
>  
> Bei der Art, wie man dann die verschiedenen Drehschritte
> durchläuft, bin ich mir unsicher:
>  
> Gehen wir davon aus, dass wir den Vector x = (1 2 3) haben.
> Dieser soll am Ende im Koordinatensystem angzeigt werden.
>  Die |x| = 3,74. Da ich den Vektor bereits mit der
> korrekten Länge zeichnen möchte, habe ich jetzt einfach
> mal naiv im ersten Schritt die Gerade auf die X-Achse
> gezeichnet. Dort bilde ich also einen Vektor
>  xStrich = (3,74 0 0) ab.
>  Dies ist die Ausgangslage.
>
> Nun projeziere ich x in die Ebene Z-X und berechne den
> Winkel-Abstand zwischen Projektion(x) und xStrich.
>  Dann drehe ich xStrich entsprechend des vorher berechneten
> Abstandes auf die Position von Projektion(x).
>  Dann habe ich nach meinem Verständnis schon mal die
> X-Richtung von x.
>  
> Dann folgt der nächste Schritt:
>  Ich projeziere x in die Y-Z-Ebene und berechne den Abstand
> von dieser Projektion zur Z-Achse. Um diesen Winkel drehe
> ich nun xStrich an der X-Achse auf die Position der
> Projektion.
> Nun sollte die Y-Richtung auch stimmen.
>  
> Nun habe ich mir gedacht, dass ich dass gleiche nochmal an
> der Y-X-Ebene mit der Z-Richtung von x vornehme.
>  
> Das Problem:
>  Es kommt am Ende nicht der Vektor heraus, den ich haben
> möchte. Irgendwelche Komponenten im Ergebnis-Vektor
> schießen da aus der Reihe.
>  
> Ich habe das ganze so schon runter programmiert und mit
> einer Vielzahl von verschiedenen Vektoren, die in den
> verschiedenen Quadranten liegen ausprobiert.
>
> Es wäre nett, wenn sich jemand dieses Verfahren mal
> anschauen könnte.
>  Bitte entschuldigt, dass ich bei der Darstellung der
> Vektoren nicht die korrekte Schreibweise genutzt habe. Ich
> denke, es sollte aber klar sein, was ich meine.


Hallo Paddi,

das sieht nach einem etwas umständlichen Verfahren aus,
und es will mir nicht recht in den Kopf, dass man das so
machen sollte, wenn ja Java FX schon eine 3D-Darstellung
anbietet. Effektiv zeichnet ja Java am Ende auch auf den
zweidimensionalen Bildschirm und hat bestimmt schon
die notwendigen Routinen intus, um Punkte aus dem [mm] \IR^3 [/mm]
(mit beliebig positioniertem und ev. verdrehten Koo-Sys)
auf die Ebene zu projizieren.
Nur ist die eigentliche Geometrie, die dahinter steckt,
möglicherweise derart in Programmteilen auf der Ebene
von Maschinen-Code verborgen, dass der normale Nutzer
keinen Zugang dazu hat ...

Vielleicht wäre es nützlich, wenn du dein Vorhaben noch
etwas eingehender beschreibst.
Möglicherweise (wenn Geometrie nicht nur eine
"Nebenrolle" spielt) gäbe es dann auch sinnvollere Zugänge
als über Java.

LG,    Al-Chwarizmi


Bezug
                
Bezug
Drehen eines Vektors im R3: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:47 Fr 07.12.2012
Autor: Paddi

Hallo Al,

vielen Dank für die schnelle Antwort.
Du hast mir doch vor ein paar Jahren schon mal geholfen, oder?
Die Anwendung von damals habe ich während meines Master-Studiums noch weiter entwickelt. Das ganze wird Anfang nächsten Jahres in Verbindung mit einem sozialen Netzwerk für Astronomen im Internet live geschaltet.
Ich schreib dir mal, wenn es soweit ist.

Aber nun zum derzeitigen Problem.
Eines Vorraus: Das Ganze ist rein privater Natur. Ich möchte einfach ein wenig mit der Graphik-Engine von JavaFX herumspielen, da das etwas ganz neues ist.

Ich weis, dass es komisch klingt, dass man unter JavaFX nur indirekt 3D rendern kann, aber es ist so.
Wenn man in der Doku zu Java FX nachschaut (und auch in einigen Beispiel im Internet), wird schnell klar, dass es wirklich so ist.
Java FX liegt derzeit in Version 2.2 vor. Es gibt keine Möglichkeit direkt in 3D zu rendern.
Es gibt für diesen Zweck Klassen im Package transform, welche eben Koordinatenveränderungen ermöglichen.
Da gibt es z.B. eine Klasse Rotate für Rotationen oder eine Klasse Translate um ein Objekt (z.B. eine Gerade oder ein Rechteck) im linken unteren Punkt in Richtung x y z zu verschieben.
Es gibt aber definitiv keine Möglichkeit direkt 3D Objekte zu rendern.
Man kann stets beim zeichnen von Objekten nur X-Y Koordinaten angeben!

Allerdings führt Java FX das sog. Z-buffering im Hintergrund durch. Dass heist es besteht die Möglichkeit des "echten" rendern von 3D Objekten an einer echten z-Achse (Es gibt 3D Systeme, die 3D Darstellungen einfach durch Projektionen in 2D speichern. Dies ist hier nicht so).
Um das rendern anzustoßen, muss man allerdings, wie oben beschrieben vorgehen.
Ich gehe davon aus, dass die direkte Möglichkeit z.B. eine Gerade oder einen Würfel in 3D zu rendern später nach kommen wird und diese Features einfach nicht fertig geworden sind.
Gerendert wird übrigens alles über OpenGL.

Ich habe auch schon mit JAVA3D als API gearbeitet. Da kann man auch direkt so etwas machen.
Das schöne an JavaFX ist jedoch, dass man es in einem Browser wie eine Flasch Anwendung laufen lassen kann. Das kann man mit Java3D zwar auch durch ein JavaApplet, jedoch gibt es da einige Nachteile.

Daher war meine Idee so vorzugehen schon begründet. So haben es andere bei anderen Beispielen auch gemacht. Da ging es meistens um andere Obejkte, wie irgendwelche Würfel durch einzelne Rechteckflächen zu bauen, die dann um zuvor bekannte Winkel im Gradmaß gedreht wurden, um diese in 3D als Würfel darzustellen.

Meine Frage ist nun, ob es überhaupt möglich ist durch diese Art von Rotationen (also erst an der z-Achse, dann y-Achse, usw..) genau auf diesen Vektor zu kommen. Eine leichte Varianz ist sicher nicht schlimm. Jedoch hatte ich bei meinen Rechenbeispielen z.B. Veränderungen von x=(-100, 100, 100) zu xStrich =(-102, 68, 104).

Es wäre lieb, wenn du mir da kurz helfen könntest.


Liebe Grüße

Paddi

Bezug
                        
Bezug
Drehen eines Vektors im R3: Antwort
Status: (Antwort) fertig Status 
Datum: 18:51 Fr 07.12.2012
Autor: Al-Chwarizmi

Guten Abend Paddi,

> Hallo Al,
>  
> vielen Dank für die schnelle Antwort.
>  Du hast mir doch vor ein paar Jahren schon mal geholfen,
> oder?

Ja, stimmt. Ich habe gerade mal nachgeschaut. Damals ging
es um die korrekte Darstellung von Sternbildern - also auch
Koordinatentransformationen.
    (Frage)
    (Bilder)

>  Die Anwendung von damals habe ich während meines
> Master-Studiums noch weiter entwickelt. Das ganze wird
> Anfang nächsten Jahres in Verbindung mit einem sozialen
> Netzwerk für Astronomen im Internet live geschaltet.
> Ich schreib dir mal, wenn es soweit ist.
>  
> Aber nun zum derzeitigen Problem.
>  Eines Vorraus: Das Ganze ist rein privater Natur. Ich
> möchte einfach ein wenig mit der Graphik-Engine von JavaFX
> herumspielen, da das etwas ganz neues ist.
>
> Ich weis, dass es komisch klingt, dass man unter JavaFX nur
> indirekt 3D rendern kann, aber es ist so.
>  Wenn man in der Doku zu Java FX nachschaut (und auch in
> einigen Beispiel im Internet), wird schnell klar, dass es
> wirklich so ist.
> Java FX liegt derzeit in Version 2.2 vor. Es gibt keine
> Möglichkeit direkt in 3D zu rendern.
>  Es gibt für diesen Zweck Klassen im Package transform,
> welche eben Koordinatenveränderungen ermöglichen.
>  Da gibt es z.B. eine Klasse Rotate für Rotationen oder
> eine Klasse Translate um ein Objekt (z.B. eine Gerade oder
> ein Rechteck) im linken unteren Punkt in Richtung x y z zu
> verschieben.
>  Es gibt aber definitiv keine Möglichkeit direkt 3D
> Objekte zu rendern.
>  Man kann stets beim zeichnen von Objekten nur X-Y
> Koordinaten angeben!
>  
> Allerdings führt Java FX das sog. Z-buffering im
> Hintergrund durch. Dass heist es besteht die Möglichkeit
> des "echten" rendern von 3D Objekten an einer echten
> z-Achse (Es gibt 3D Systeme, die 3D Darstellungen einfach
> durch Projektionen in 2D speichern. Dies ist hier nicht
> so).
>  Um das rendern anzustoßen, muss man allerdings, wie oben
> beschrieben vorgehen.
>  Ich gehe davon aus, dass die direkte Möglichkeit z.B.
> eine Gerade oder einen Würfel in 3D zu rendern später
> nach kommen wird und diese Features einfach nicht fertig
> geworden sind.
>  Gerendert wird übrigens alles über OpenGL.
>
> Ich habe auch schon mit JAVA3D als API gearbeitet. Da kann
> man auch direkt so etwas machen.
> Das schöne an JavaFX ist jedoch, dass man es in einem
> Browser wie eine Flash Anwendung laufen lassen kann. Das
> kann man mit Java3D zwar auch durch ein JavaApplet, jedoch
> gibt es da einige Nachteile.
>  
> Daher war meine Idee so vorzugehen schon begründet. So
> haben es andere bei anderen Beispielen auch gemacht. Da
> ging es meistens um andere Obejkte, wie irgendwelche
> Würfel durch einzelne Rechteckflächen zu bauen, die dann
> um zuvor bekannte Winkel im Gradmaß gedreht wurden, um
> diese in 3D als Würfel darzustellen.
>  
> Meine Frage ist nun, ob es überhaupt möglich ist durch
> diese Art von Rotationen (also erst an der z-Achse, dann
> y-Achse, usw..) genau auf diesen Vektor zu kommen. Eine
> leichte Varianz ist sicher nicht schlimm. Jedoch hatte ich
> bei meinen Rechenbeispielen z.B. Veränderungen von
> x=(-100, 100, 100) zu xStrich =(-102, 68, 104).
>  
> Es wäre lieb, wenn du mir da kurz helfen könntest.
>  
> Liebe Grüße  
> Paddi

Ich habe rasch nachgeschaut und auch gesehen, dass es nebst
JavaFX ein Java3D gäbe. Für 3D-Grafikdarstellungen mit
allem Drum und Dran wie Beleuchtung, Schatten etc. wäre
es also wohl sinnvoll, zu Java3D zu greifen.
Für relativ einfache "Strichzeichnungen" in 3D mittels JavaFX
würde ich mir wohl die Grundroutinen zum Verschieben und
Drehen von Punkten (die in 3D-Koordinaten vorliegen)
eher selber aufstellen und dann das auf 2D umgerechnete
Bild direkt an Java zum Zeichnen übergeben.

Frage ist, was du denn so in etwa machen willst:
Welche Arten von geometrischen Objekten sollen gezeichnet
werden (nur Punkte / Strecken aus 2 Punkten /
Rechtecke / Dreiecke / beliebige ebene Figuren / auch
räumliche Objekte, also Polyeder und etwa Kugel- und
Zylinderflächen) ?

Um zum Beispiel ein Rechteck ABCD aus einer gegebenen
Ausgangsposition in eine beliebige Lage im [mm] \IR^3 [/mm] zu bringen,
sind insgesamt z.B. 3 Verschiebungen und 3 Drehungen
(jeweils um die Koordinatenachsen) erforderlich. Dieser
Transformationsprozess ist dabei in verschiedenen Reihen-
folgen möglich - welche davon man wählen will, entscheidet
man am besten von praktischen Gesichtspunkten aus.

Gib uns also mal eine Idee (am besten an einem relativ,
aber nicht zu einfachen Beispiel) davon, was du effektiv
darstellen möchtest. Vielleicht einen Buchstaben wie z.B.
ein "A" , ein "F" oder ein "Z" (nur aus Strichen, keine Balken !),
welche man dann um eine beliebige schräg im Raum liegende
Rotationsachse drehen kann ...  oder so ähnlich ...

LG

Al-Chwarizmi



Bezug
                                
Bezug
Drehen eines Vektors im R3: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:01 Fr 07.12.2012
Autor: Paddi

Im Wesentlichen möchte ich einfache Strukturen der linearen Algebra zeichnen.

Also Vektoren mit Stützvektor != 0, mit Stützvektor = 0, einfache Ebenen und später vielleicht Kreise, Kugeln oder ähnliches.
Das Ganze soll ein Mathe-Plottprogramm werden.
Ich möchte eben jetzt erstmal einfache Vektoren zeichnen. Wenn dies möglich ist, kann man auch schon mal Ebenen aus zwei Richtungsvektoren mit und ohne Stützvektor zeichnen.
Es soll dann anschließend möglich sein alles was man so in dem Plottprogramm anzeigt, aus allen Richtungen betrachten zu können, was jetzt schon geht.
Es fehlt jetzt zunächst mal, dass man einen einfachen Vektor zeichnen kann.


Viele Grüße


Paddi

Bezug
                                        
Bezug
Drehen eines Vektors im R3: Antwort
Status: (Antwort) fertig Status 
Datum: 20:31 Fr 07.12.2012
Autor: Al-Chwarizmi


> Im Wesentlichen möchte ich einfache Strukturen der
> linearen Algebra zeichnen.
>  
> Also Vektoren mit Stützvektor != 0, mit Stützvektor = 0,
> einfache Ebenen und später vielleicht Kreise, Kugeln oder
> ähnliches.
>  Das Ganze soll ein Mathe-Plottprogramm werden.
>  Ich möchte eben jetzt erstmal einfache Vektoren zeichnen.
> Wenn dies möglich ist, kann man auch schon mal Ebenen aus
> zwei Richtungsvektoren mit und ohne Stützvektor zeichnen.
>  Es soll dann anschließend möglich sein alles was man so
> in dem Plottprogramm anzeigt, aus allen Richtungen
> betrachten zu können, was jetzt schon geht.
>  Es fehlt jetzt zunächst mal, dass man einen einfachen
> Vektor zeichnen kann.


Was verstehst du unter "einen Vektor zeichnen" ?
Soll das einfach die Verbindungsstrecke vom Nullpunkt
zu einem Punkt P(x|y|z) sein ?
Du wolltest von einer auf die x-Achse gelegten Strecke
[mm] OP_0 [/mm] mit [mm] P_0(r|0|0) [/mm] ausgehen, wobei [mm] r=\sqrt{x^2+y^2+z^2} [/mm]
und diese Strecke dann durch Drehungen in die
gewünschte Lage bringen. Um welche Rotationsachsen
kannst du denn drehen ? Wahrscheinlich um die 3
Koordinatenachsen. Dann drehe etwa den Punkt [mm] P_0(r|0|0) [/mm]
zuerst um die y-Achse, und zwar um den Winkel
(Höhenwinkel !)  [mm] $\theta\ [/mm] =\ - arcsin(z/r)$  (Minuszeichen
für den richtigen Drehsinn). Das Ergebnis ist ein Punkt [mm] P_1 [/mm]
in der x-z-Ebene. Diesen musst du dann noch um den
(Azimut-) Winkel [mm] \varphi [/mm] um die z-Achse drehen, um ihn
zum Punkt P zu bringen.
[mm] \varphi [/mm] berechnest du am besten mit der atan2-Funktion,
die in JavaFX hoffentlich auch zur Verfügung steht.
[mm] $\varphi\ [/mm] =\ atan2(y,x)$ .

Wie schon gesagt, so ganz wohl ist mir bei der Sache
nicht, weil JavaFX offenbar eine so halbwegs zurecht-
gezimmerte Umgebung für gewisse Drehungen im Raum
zur Verfügung stellt, aber doch kein richtges Arbeiten
mit 3D-Geometrie erlaubt ...

LG,   Al-Chwarizmi





Bezug
                                                
Bezug
Drehen eines Vektors im R3: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 21:37 Fr 07.12.2012
Autor: Paddi

Hallo Al,

vielen Dank für die schnelle Antwort. Ich werde das morgen früh mal ausprobieren.

Hier mal zu der 3D Thematik ein Auszug aus der ORACLE Doku zu 3D Transformationen für JavaFX:

Transformations in JavaFX can be performed along three coordinates, thus enabling users to create three-dimensional (3-D) objects and effects. To manage the display of objects with depth in 3-D graphics, JavaFX implements z-buffering. Z-buffering ensures that the perspective is the same in the virtual world as it is in the real one: a solid object in the foreground blocks the view of one behind it. Z-buffering can be enabled by using the setDepthTest class. You can try to disable z-buffering (setDepthTest(DepthTest.DISABLE) ) in the sample application to see the effect of the z-buffer.

Hier mal der link:

http://docs.oracle.com/javafx/2/transformations/jfxpub-transformations.htm

Man kann so also das Z-Buffering aktivieren.
Dann ist die 3D Welt aktiv.
Das geniale ist die Kamera-View, die beim starten der Anwendung genau auf die X-Y Ebene schaut. Die kann dann nach belieben gedreht werden und so sieht man alle 3D Effekte.
Wenn man einmal die Grundkonstrukte als Klassen selber definiert hat, welche man nutzen möchte, um Objekte zusammenzusetzen, geht es eigentlich recht schnell etwas brauchbares zu entwickeln.


Viele Grüße


Paddi


Bezug
                                                        
Bezug
Drehen eines Vektors im R3: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 22:20 Sa 22.12.2012
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
                                                
Bezug
Drehen eines Vektors im R3: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 12:56 Mo 10.12.2012
Autor: Paddi

Hallo nochmal,

ich habe mich jetzt mal etwas mit deiner Anleitung beschäftigt.
Ich musste zunächst noch mal den Begriff des Höhenwinkels nachschlagen.
Der wird ja auch als Vertikalwinkel bezeichnet.
Zum Verständnis:
Wenn ich um den Höhenwinkel den Punkt P0 drehe, so steigt er so zu sagen auf der X-Achse liegend der Y-Achse entgegen, oder?

Wenn ich jetzt um den ersten Winkel diesen Punkt P0 im Höhenwinkel um die Y-Achse drehe, ist das dann nicht das gleiche, wie wenn ich den Punkt P0 im Azimutwinkel um die Z-Achse drehe?

Aber dann müsste das Ergebnis doch ein Punkt sein, der in der X-Y-Ebene und nicht in der X-Z-Ebene liegt, oder?

Über die Unterscheidung zwischen Azimut - und Höhenwinkel habe ich bisher gar nicht nachgedacht, da hier bei JavaFX die Drehmatrizen genutzt werden, die ich so auch aus dem Studium kenne. Diese drehen, so weit ich informiert bin, jeweils im Azimut-Winkel.

Als Beispiel für die Matrix der Z-Achse:

[mm] \pmat{ cos(alpha) & -sin(alpha) & 0 \\ sin(alpha) & cos(alpha) & 0 \\ 0 & 0 & 1 } [/mm]

Müsste dann nicht die zweite Drehung im Azimut-Winkel um die X-Achse gedreht werden? So würde man den Winkel ja dann Richtung Z noch mal verstellen.

Die Funktionen (z.B. Winkelfunktionen), die ich zur Verfügung habe, sind unabhängig von JavaFX. Ich benutze dort einfach die Funktionen des Packages MATH, welches in der Standard API von Java dabei ist.

Da ist auch die atan2 Funktion dabei.


Viele Grüße


Paddi




Bezug
                                                        
Bezug
Drehen eines Vektors im R3: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:20 Di 25.12.2012
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
        
Bezug
Drehen eines Vektors im R3: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 12:20 Sa 22.12.2012
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Lineare Algebra - Moduln und Vektorräume"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.unimatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]