Nun habe ich es geschafft, die Bewegung (translation) auf die Ebene zu beschränken, allerdings baut er bei der Rotation immer noch mist.
Hier mal ein bissl code (kann ich den joint nicht auch klassenunabhängig machen, sodass ich nicht für jede box einen joint instanzieren muss ?):
Registriert: Di Nov 07, 2006 13:37 Beiträge: 83 Wohnort: Partenheim
Hallo Seth!
Ich hatte nicht die Zeit, lange drüberzugucken oder es selbst zu testen, aber ich denke, der Fehler liegt in der Funktion "MatrixVectorTransform".
Denn wenn du die Matrix von Newton beziehst, ist sie transponiert. Wenn du also innerhalb deiner Funktion die Indizes der ersten Dimension mit denen der zweiten Dimension deiner Matrix vertauschst, sollte es schon keinen Mist mehr bauen.
Mit "@world_point.y" übergibst du den Vektor (world_point.y; world_point.z; Wert, der sich im RAM zufällig dahinter befindet) an Newton.
Ähnlich mit "@mPlaneNormal.z".
Ich nehme an, das ist ein Tippfehler o. ä.
Falls es das nicht war, tippe ich auf die Vektoren, die innerhalb eines Records vorliegen, obwohl ich dachte, dass sich die Werte, wie beim Array auch, hintereinander im RAM befinden.
Registriert: Di Nov 07, 2006 13:37 Beiträge: 83 Wohnort: Partenheim
Lass' das *.x bitte nicht weg, da du ja einen Pointer übergeben willst, der auf das erste Element deines Vektors zeigen soll, nicht auf das Objekt, das die Elemente enthält. Delphi korrigiert das zwar in den meisten Fällen, doch nicht in allen.
Irgendwie klappt das noch nicht so richtig (außerdem scheinen die boxen ab und an doch abzuschweifen, wenn auch nur gering, aber sie berühren die clipping ebene)
Ich hab mal mein Projekt hochgeladen:
Registriert: Di Nov 07, 2006 13:37 Beiträge: 83 Wohnort: Partenheim
Hi Seth!
Ich hoffe, du hast dein Problem schon gelöst. Denn eine wirkliche Lösung habe ich für dich auch nicht.
Ich bin mir zwar ziemlich sicher, dass es am Gewicht der Boxen liegt, sodass die Joints einfach zu schwach sind, die schweren Kisten in der Bahn zu halten, empfehle dir aber trotzdem, dich, falls du es nicht schon getan hast, mit dieser Frage an das Newton-Forum zu wenden und außerdem dein Programm so anzupassen, dass du eine Gravitation von 9.8 * Mass hast, denn dafür ist Newton ausgelegt. Wenn es mit dieser Schwerkraft nicht realistisch wirkt, solltest du nicht die Schwerkraft anpassen sondern den Fehler an anderer Stelle suchen (das sag' ich aus Erfahrung).
Ich hoffe, ich konnte dir trotzdem irgendwie helfen,
Conan
Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.