Physikfragen

Previous topic - Next topic

WPShadow

Das sollte nicht das Problem sein!

Bis jetzt weiß ich nämlich bloß, wo ich genau stehe! Mir geht es darum, wo ich hin schaue! Ich könnte ja ein Spiel mit einem Ball machen, bei dem Rotation egal ist, aber bei Raumschiffen sieht die Sache schon etwas anders aus.

Und immer in die selbe Richtung zu schauen, sieht auch blöd aus!

Was brauche ich denn für die rotation? mat[0 - 13] ??? Und falls ja, welche? Oder wie? Oder wo?
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Schranz0r

hab ich doch gesagt!
SIN COS evtl sogar TAN...Have fun...
Und ob das ein Problem ist !
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Nimm NetwonBuildMatrix (rotX, rotY, rotZ, moveX, moveY, moveZ)
hab' ich doch alles schon für euch gemact ;)

Schranz0r

Ohhhhhhh........
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

WPShadow

Wo genau muß ich NewtonBuildMatrix ansetzen? Vor dem Objekt bzw. vor der Objektmatrix ( NewtonCreateCompoundBody() )?
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Schranz0r

Quote from: GernotFrischDas Parent ist auf 0,0,0 (beim zusammenbauen)
Jetzt ist der Kopf auf 50,0,0, OK?
Also:
NewtonCreateCompoundBody()
NewtonBuildMatrix (0,0,0,   50,0,0, mat[])
NewtonCreateBox (1,1,1, mat[])

...

Der NewtonCreateMatrix kann auch die Rotationen einbauen.
Wer lesen kann.... WP da Shadow
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

WPShadow

Das schon! Damit verschiebe ich ja untereinander die Einzelteile! Ich meine damit, falls ich das ganze Ding rotieren möchte! Das müßte dann also eigentlich so laufen:

// Rotation für zusammengesetztes Ding
NewtonBuildMatrix (0,0,0,   50,0,0, mat[])

// Zusammengesetztes Ding
NewtonCreateCompoundBody()
NewtonBuildMatrix (0,0,0,   50,0,0, mat[])
NewtonCreateBox (1,1,1, mat[])

Oder?
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Schranz0r

Versuchs doch einfach mal ^^
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

WPShadow

Habe doch keinen Rechner hier, auf dem ich es testen könnte! Erst heute Abend. Deshalb frage ich jetzt genau nach, damit ich heute Abend nicht 4 Stunden herum sitze und es dann immer noch nicht funktioniert! (so ungefähr halt...) =D
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Das machst Du nachher, mit
NewtonBuildMatrix globRX, .... globX,...., m[]
NewtonBodySetMatrix fertiger_body, m[]

Damit kann man ein Objekt irgendwo platzieren -> Das sollte man aber nicht zwischen dem Lauf machen, weil's sonst instabil werden kann. Sondern nur am Anfang, damit die Objekte da sind, wo sie im Level anfangen.

WPShadow

Kurz zur Erklärung, was ich möchte:

Raumschiff besteht aus verschiedenen Teilen. Jedes Teil hat eine gewisse Masse und der Antrieb hat eine gewisse Kraft, mit der er das Ding voran treibt. --> Summe der Massen vs. Antriebskraft (gewissermaßen)

Und das Ganze möchte ich auf einer großen Fläche (2D) mal austesten, wobei eben die Einzelteile zusammen halten sollten und sich in die Richtung drehen sollten, in die ich das Raumschiff drehen möchte. Also so ca. wie x_push_matrix / x_pop_matrix.

Das ist im Augenblick der Plan. Nicht mehr und nicht weniger. Mein erstes Experiment mit einem Würfel funktioniert ja schon super. Aber der Rest eben noch nicht. Da ist halt noch das Problem...

QuoteDamit kann man ein Objekt irgendwo platzieren -> Das sollte man aber nicht zwischen dem Lauf machen, weil's sonst instabil werden kann. Sondern nur am Anfang, damit die Objekte da sind, wo sie im Level anfangen.
Das ist jetzt ungefähr klar. Also platzieren und ausrichten, gewissermaßen. Würde das dann auch ca. so funktionieren:

NewtonBuildMatrix aktuelle_Position_X, .... aktueller_Winkel_X,...., m[]
NewtonBodySetMatrix fertiger_body, m[]

Also gewissermaßen die aktuelle Position einfach übergeben und den entsprechenden Winkel dazu machen?
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Ach so!!! Die Teile sollten getrennt bleiben, wg. Antrieb usw.? Dann musst Du die mit einem Joint verbinden. Jetzt wirds evtl. bisserl knifflig :D

WPShadow

Nicht wirklich getrennt! Sie sollen eigentlich ein fixes ganzes Objekt bilden. Aber ich möchte sie halt getrennt laden. Damit ich einfach einzelne Teile auswechseln kann. (z.B. anderes Cockpit oder so)

Ich modelliere die einzelnen Objekte ja schon so, daß ich sie beim einfügen eigentlich schon an der richtigen Position habe. Eigentlich müssen sie dann nur mehr eingefügt werden und zusammen geklatscht. Aber so, wie ich vorher gemeint habe

QuoteNewtonBuildMatrix aktuelle_Position_X, .... aktueller_Winkel_X,...., m[]
NewtonBodySetMatrix fertiger_body, m[]
müßte ich eigentlich ganz normal die Bewegung bzw. die Rotation hinbekommen, oder?
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

OK, dann ist der Compound für dich.

WPShadow

Stimmt! Funktioniert nämlich spitze!

Und jetzt habe ich eine Grundlegende Frage, die ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜBERAUS wichtig ist:

Code (glbasic) Select
X_LOADOBJ "ground.ddd", 0
X_LOADOBJ "cube.ddd", 1
X_LOADOBJ "sphere.ddd", 2
LOADSPRITE "textur.png", 0

LOCAL dtime
LOCAL org[]
LOCAL org2[]
LOCAL force[]

usw.
Wie genau weise ich einem org[] den Wert von Sphere zu? Oder von cube? Wie sage ich:

org[]   = cube.ddd
org2[] = sphere

Das verstehe ich bis jetzt noch absolut nicht...

Und noch eine Frage:

Gibt es irgendeine "Abfrageart" bei Newton, bei der nicht eine "grobe" Struktur her genommen wird (Cube, Sphere, ...) sondern die Polygonen des 3D Modells selbst? Irgendwas soll es da ja geben, glaube ich. Also sozusagen, daß das Modell direkt als Kollisionsabfrage genutzt wird. (ungefähr???)

Gute Nacht

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est