PointEntity auf zwei Achsen beschränken
Übersicht

![]() |
Der EisvogelBetreff: PointEntity auf zwei Achsen beschränken |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo liebe Community,
schon lange war ich hier nicht mehr aktiv und auch Blitz ist etwas eingeschlafen. Aber für ein aktuelles Schulprojekt wollte ich mir einen Spaß erlauben und eine 3D Visualisierung für einen Roboter basteln. Meine Erfahrungen im 3D-Bereich sind noch weniger als gering, aber mittlerweile erkennt man den Roboter und er kann sich bewegen. Zu meiner Frage: Die Antriebe des Roboters müssen jetzt irgendwie mit dem Roboter selbst bewegt werden. Hierzu erstmal ein Bild: Das weiße Teil ist ein Antrieb, dieser hat am unteren Ende einen Aufsatzpunkt. Die lokal Koordinate für den Antrieb an diesem Punkt ist 0,0,0. Dort wo der Pfeil hinzeigt, soll der Antrieb später eine Verbindung haben, indem dort noch einen Stange dran kommt. Der Antrieb musst jetzt also auf diesen Punkt zeigen. Je nachdem wie der Roboter sich bewegt muss der Antrieb auch mitbewegt werden. Meine Idee war jetzt also ein Pivot genau auf den oberen Aufsatzpunkt zu setzen und mittels PointEntity ![]() Ich hoffe das war verständlich erklärt, wenn nicht, würde ich kurz noch einen Demo hochladen, wo man sich das in Bewegung angucken kann. Vielen Dank für eure Unterstützung. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Kruemelator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es gibt den Befehl:
BlitzBasic: [AUSKLAPPEN] AlignToVector der ist etwas mächtiger als PointEntity kann aber auch genau dasselbe machen wenn man möchte. Bei diesem kannst du die Achse die ausgerichtet werden soll selber bestimmen. Du könntest auch den Winkel zwischen der unteren Leiste und der senkrechten ermitteln und dann RotateEntity nutzen. |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Kruemelator,
vielen Dank für den Vorschlag. Ich hab das jetzt eben mal probiert und mir mittels TFromPoint etc. einen Vektor zusammengebastelt, der vom unteren Aufsatzpunkt auf den oberen zeigt. Jetzt funktioniert das ganze aber wiederum nur solange, bis ich den Körper des Roboter (das unterste blaue Teile) um seine Hochachse drehe. Dann muss der Antrieb auf zwei Achsen im globalen Koordinatensystem ausgerichtet werden. Kann ich AlignToVector auch irgendwie so anwenden, dass es sich auf lokales Koordinatensystem eines Entitys ausrichtet? EDIT: Man vergesse bitte meine obige Anmerkung. Ich hatte die Funktionsweise des Befehls nicht ganz durchleuchtet und ihn falsch angewendet. Jetzt funktioniert es. Vielen Dank. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit PointEntity würde es auch funktionieren.
Das bewirkt eine Drehung nur um die Y-Achse (Pseudocode) Hab ich immer so gemacht, wenns mal schnell gehen sollte ![]() Code: [AUSKLAPPEN] pitch=EntityPitch(Gerät) ;yaw=EntityYaw(Gerät) roll=EntityRoll(Gerät) PointEntity(Gerät,Punkt) RotateEntity Gerät,pitch,EntityYaw(Gerät),roll |
||
Twitter
Download Jewel Snake! Windows|Android |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group