Hi,
also, das mag jetzt vielleicht richtig komisch klingen, aber ich hab grad ein riesen Verständnisproblem, was wohl die einfachste der Grundprimitiven angeht.
Bei all den Annahmen und Aussagen, berichtigt mich bitte sofort, wenn eine (und sei sie noch so unscheinbar) net stimmt:
Weltkoordinatensystem: Rechtshändig, also x läuft nach rechts weg, y nach oben und z kommt auf mich zu.
Lokales Koordinatensystem einer Box: Rechtshändig, Ursprung liegt in der Mitte der Box, d.h. genau im Zentrum, was eine halbe Kantenlänge für jede der 3 Achsen bedeutet.
Ausmaße der Box:
Die Box bekommt die doppelte Breite, da sich der Wert der Breite einmal auf die positive und einmal auf die negative Achse auswirkt.
So, da kann doch irgendwas net so ganz stimmen. Ich habe mir eine Box erstellt, die 8, 3.5f, 8 Einheiten groß ist. Zumindest bilde ich mir ein, dass sie so groß sein soll. Tatsächlich macht es aber den Anschein, dass diese Box nun von ihrem lokalen Ursprung einmach 8 Einheiten nach +x und dann nochmal 8 Einheiten nach -x gewachsen ist. y/z analog. Muss ich jetzt meine Werte erst mal halbieren, um eine Box gegebener Größe richtig erstellen zu können?!
Außerdem: Macht es Sinn, dass der Ursprung im Zentrum liegt? Macht das jeder so? Meine Vorstellung wäre eigentlich gewesen, aber ich könnte sie auch anpassen, wenn mir jeder sagt, dass ich hiermit falsch liege, dass einer der 8 Punkte der Box auf 0|0|0 liegt. Von diesem Startpunkt aus, wächst die Box sozusagen um 8, 3.5f, 8. Somit sollte also der (z läuft auf mich ja zu) hintere, untere, linke Punkt P0 auf (0|0|0) liegen, der vordere, untere, linke Punkt P1 auf (0|0|8), der vordere, untere, rechte Punkt P2 auf (8|0|8) und der hintere, untere, rechte Punkt P3 auf (8|0|0) liegen. Der hintere, obere, linke Punkt P4 auf (0|3.5|0) und die weiteren Punkte entsprechend ihrer unteren Partner auf den gleichen x/z Koordinaten, einfach um y verschoben liegen.
So hat man doch auch in der Schule einen gegebenen Würfel in den R³ gelegt, oder etwa nicht? Bei ner Sphere würde ich sogar so weit gehen und behaupten, ich erzeuge mir eine BoundingBox mit den Ausmaßen von r der Kugel und platziere die Kugel dann so mittig in die BoundingBox, die BB wiederum hat auch wieder den P0 auf (0|0|0). Ich habe die bisher 25 Seiten Java 3D Topics alle angeschaut und bei wohl mindestens 20 auch rein geschaut... aber das hat noch keiner gebracht. Hab ich nun was grundlegendes falsch gemacht, ist das noch niemandem aufgefallen oder weiß jeder, dass das halt im Zentrum liegt und weiß, dass das so richtig oder gegeben ist und fertig?
Ich hab versucht, einen Fehler in meinem Code zu finden, aber denke, dass der noch relativ einfach ist und da hab ich auch keinen Fallstrick erkennen können. Ich hab mir dann, um sicher zu gehn, ein Raster erzeugt, dass 3D durch meine Szene läuft. Und da ist es genauso... da immer 2 der 3 Achsen fast 0 sind, schneiden die Linien da, wo ich vermuten würde. Die letzte Achse jedoch dimensioniert die Länge der Gitterlinie... gebe ich eine Länge von 10 an, bekomm ich aber 20...
Ich mach jetzt einen Memory-Reset meines Hirns und nehm die gegebenen Antworten als richtig auf ???:L
OK, ganz so net... aber mich würden hierzu brennend andere Meinungen interessieren und wie ihr die Welt seht!
also, das mag jetzt vielleicht richtig komisch klingen, aber ich hab grad ein riesen Verständnisproblem, was wohl die einfachste der Grundprimitiven angeht.
Bei all den Annahmen und Aussagen, berichtigt mich bitte sofort, wenn eine (und sei sie noch so unscheinbar) net stimmt:
Weltkoordinatensystem: Rechtshändig, also x läuft nach rechts weg, y nach oben und z kommt auf mich zu.
Lokales Koordinatensystem einer Box: Rechtshändig, Ursprung liegt in der Mitte der Box, d.h. genau im Zentrum, was eine halbe Kantenlänge für jede der 3 Achsen bedeutet.
Ausmaße der Box:
Code:
Box box = new Box( weight, height, depth, Box.GENERATE_NORMALS, null);
Box
public Box(float xdim,
float ydim,
float zdim,
Appearance ap)
Constructs a box of a given dimension and appearance. Normals are generated by default, texture coordinates are not.
Parameters:
xdim - X-dimension size.
ydim - Y-dimension size.
zdim - Z-dimension size.
ap - Appearance
Die Box bekommt die doppelte Breite, da sich der Wert der Breite einmal auf die positive und einmal auf die negative Achse auswirkt.
So, da kann doch irgendwas net so ganz stimmen. Ich habe mir eine Box erstellt, die 8, 3.5f, 8 Einheiten groß ist. Zumindest bilde ich mir ein, dass sie so groß sein soll. Tatsächlich macht es aber den Anschein, dass diese Box nun von ihrem lokalen Ursprung einmach 8 Einheiten nach +x und dann nochmal 8 Einheiten nach -x gewachsen ist. y/z analog. Muss ich jetzt meine Werte erst mal halbieren, um eine Box gegebener Größe richtig erstellen zu können?!
Außerdem: Macht es Sinn, dass der Ursprung im Zentrum liegt? Macht das jeder so? Meine Vorstellung wäre eigentlich gewesen, aber ich könnte sie auch anpassen, wenn mir jeder sagt, dass ich hiermit falsch liege, dass einer der 8 Punkte der Box auf 0|0|0 liegt. Von diesem Startpunkt aus, wächst die Box sozusagen um 8, 3.5f, 8. Somit sollte also der (z läuft auf mich ja zu) hintere, untere, linke Punkt P0 auf (0|0|0) liegen, der vordere, untere, linke Punkt P1 auf (0|0|8), der vordere, untere, rechte Punkt P2 auf (8|0|8) und der hintere, untere, rechte Punkt P3 auf (8|0|0) liegen. Der hintere, obere, linke Punkt P4 auf (0|3.5|0) und die weiteren Punkte entsprechend ihrer unteren Partner auf den gleichen x/z Koordinaten, einfach um y verschoben liegen.
So hat man doch auch in der Schule einen gegebenen Würfel in den R³ gelegt, oder etwa nicht? Bei ner Sphere würde ich sogar so weit gehen und behaupten, ich erzeuge mir eine BoundingBox mit den Ausmaßen von r der Kugel und platziere die Kugel dann so mittig in die BoundingBox, die BB wiederum hat auch wieder den P0 auf (0|0|0). Ich habe die bisher 25 Seiten Java 3D Topics alle angeschaut und bei wohl mindestens 20 auch rein geschaut... aber das hat noch keiner gebracht. Hab ich nun was grundlegendes falsch gemacht, ist das noch niemandem aufgefallen oder weiß jeder, dass das halt im Zentrum liegt und weiß, dass das so richtig oder gegeben ist und fertig?
Ich hab versucht, einen Fehler in meinem Code zu finden, aber denke, dass der noch relativ einfach ist und da hab ich auch keinen Fallstrick erkennen können. Ich hab mir dann, um sicher zu gehn, ein Raster erzeugt, dass 3D durch meine Szene läuft. Und da ist es genauso... da immer 2 der 3 Achsen fast 0 sind, schneiden die Linien da, wo ich vermuten würde. Die letzte Achse jedoch dimensioniert die Länge der Gitterlinie... gebe ich eine Länge von 10 an, bekomm ich aber 20...
Ich mach jetzt einen Memory-Reset meines Hirns und nehm die gegebenen Antworten als richtig auf ???:L
OK, ganz so net... aber mich würden hierzu brennend andere Meinungen interessieren und wie ihr die Welt seht!