# Verdammte Lineare Algebra :)



## ghummelll (24. Mrz 2010)

Hallo Leute,

bin zwar derzeit mit Avango unterwegs, aber mein Problem ist eher mathematischer Natur, was man auch bei einer Implementierung in Java in den Griff kriegen müsste.

Es geht um einen virtuellen Supermarkt (nicht fragen...  - und wenn doch dann hier nachlesen). Eingesammelte Produkte wollen wir natürlich in unserem Einkaufswagen transportieren. Problem dabei: Es erschien uns einfacher, das gesamte Supermarkt-Model zu transformieren, so dass wir uns weiterhin im Weltkoordinaten-System fortbewegen. Nur sind unsere Produkte nun auf merkwürdigste Weise transformiert und wir haben keine Chance, sie irgendwie sinnvoll zu einem bestimmten Punkt (im Moment noch der Koordinatenursprung, später unser Einkaufswagen) zu bewegen.

Vielleicht kann jemand was mit den Matrizen anfangen:

```
ABSOLUTE TRANSFORM (also Weltkoordinaten):
 0.05   0.00   0.00   0.00
 0.00   0.00  -0.05   0.00
 0.00   0.05   0.00   0.00
 0.00  -2.20   5.00   1.00

Dabei haben wir folgende Rotation:
angle: 0.189903    -> sind umgerechnet circa 10.88°
axis : (-1, 0, 0)  -> also praktisch -11° um die x-Achse
Der Witz daran ist, dass wir den Supermarkt um 90° um die negative x-Achse drehen.
ACHTUNG KORREKTUR: Vorher stand hier noch z-Achse, ist aber tatsächlich die x-Achse.

OFFSET MATRIX (also in diesem merkwürdigem Koordinatensystem):
 1.00   0.00   0.00   0.00
 0.00   1.00   0.00   0.00
 0.00   0.00   1.00   0.00
-0.35   2.67 -38,48   1.00

Und jetzt kommt der Kracher - Die Bounding Sphere des Produkts im Weltkoordinaten-System:
(-0.35, 0.40, -33.48)
```

Tut mir leid, ich sitze da seit drei Tagen dran und werde aus diesen Werten nicht schlau... Ich habe bereits so vieles probiert, habe mit inversen Matrizen gerechnet und alles, nichts davon hat geklappt. Wenn ich mir übrigens die Bounding Sphere zeichnen lasse und ich diese nach meinen Vorstellungen transformiere, klappt alles bestens, nur mein gegriffenes Produkt macht abgefahrene Sachen. Ich will nun auch nicht zu viel verraten, was ich denn schon alles gemacht habe, denn nachher führe ich Euch nur auf die falsche Fährte.

Ich bin verzweifelt und daher auch für jeden noch so nutzlosen Kommentar offen.  Ich hoffe aber, dass einer von Euch ein LinAlg-Buch komplett verinnerlicht hat. 

Liebe Grüße aus Weimar,
ghummelll


----------



## Empire Phoenix (25. Mrz 2010)

Ich empfehle für sowas ja nen scenebased grafic engine..

supermarkt.detachchild(artikle)
artikle.setparent(einkaufswagen) 
artikle.setlocaltranslation(0,0,0)

Und schon liegt der artikel im wagen  
Gibt mehrere java 3d engines , ich empfehle jetzt einfach mal java monkey engine


----------



## ghummelll (25. Mrz 2010)

Vielen lieben Dank erst mal für die Antwort! Mit der empfohlenen Engine kann ich leider nichts anfangen, da wir wie gesagt derzeit mit Avango programmieren. Allerdings basiert Avango auf dem OpenSceneGraph, da müsst ich also nur noch schauen, ob diese Methode bereits gewrappt ist.

Aaaber: So einfach hab ich natürlich nicht gedacht. Daher nochmals vielen Dank!


----------



## Evil-Devil (25. Mrz 2010)

Avango nutzt doch einen Scenegraph (OpenSceneGraph), von daher dürfte Empires Einwurf ohne all zu große Probleme umsetzbar sein. Das einzige Problem das hier vermutlich haben werdet ist die eventuelle Umarbeitung eurer bisherigen Darstellung von Objekten/Geometrie.


----------

