Gamestudio Links
Zorro Links
Newest Posts
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
Help with plotting multiple ZigZag
by degenerate_762. 04/30/24 23:23
M1 Oversampling
by 11honza11. 04/30/24 08:16
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (AndrewAMD, TedMar), 1,031 guests, and 1 spider.
Key: Admin, Global Mod, Mod
Newest Members
firatv, wandaluciaia, Mega_Rod, EternallyCurious, howardR
19050 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 4 1 2 3 4
Winkelberechnungen #362964
03/10/11 14:40
03/10/11 14:40
Joined: Mar 2002
Posts: 154
Zschornewitz, Sachsen-Anhalt, ...
I
IngoS. Offline OP
Member
IngoS.  Offline OP
Member
I

Joined: Mar 2002
Posts: 154
Zschornewitz, Sachsen-Anhalt, ...
Hallo,
vielleicht hat jemand eine Idee. Ein LKW wird mit Gegenständen beladen. Ich möchte in jedem Gegenstand beim Aufladen auf den LKW seine realive Position, sowie seinen relativen Winkel zum Fahrzeug sichern, um die Gegenstände beim Fahren updaten zu können. Bedingung ist also das für die Speicherung nur 2 Vectoren bentuzt werden sollen.

Die realtive Position beim Aufladen erhalte ich mit vec_to_ent. Zum Updaten der Gegenstände hole ich mir die absolute Position mit vec_for_ent zurück. Aber wie kann ich das mit den Winkeln lösen?

Die Differenz der Winkel beim Aufladen per ang_diff zu sichern und nach jedem Frame per ang_add zu updaten funktioniert nicht.

Es sollte also logisch so wie bei Bones funktionieren, die sind ja auch im Modell lokal gespeichert und mit ang_for_bone hole ich mir dann jederzeit die globalen Winkel. Was es für Positionen schon wie oben beschrieben gibt brauche ich also für Winkel, etwa so ang_to_ent und ang_for_ent.

Kann jemand helfen?

Re: Winkelberechnungen [Re: IngoS.] #362965
03/10/11 14:53
03/10/11 14:53
Joined: Jun 2006
Posts: 2,640
Earth
Germanunkol Offline
Expert
Germanunkol  Offline
Expert

Joined: Jun 2006
Posts: 2,640
Earth
Quote:
Die Differenz der Winkel beim Aufladen per ang_diff zu sichern und nach jedem Frame per ang_add zu updaten funktioniert nicht.
genau so würde ich es aber versuchen. Wichtig ist dabei, dass du nicht jeden frame den winkel dazuaddierst sondern erst vec_set(my.pan, lkw.pan); und dann erst ang_rotate(my.pan, differenceAng);
Außerdem müsstest du ang_rotate benutzen und nicht ang_add, je nachdem wie du ang_diff benutzt.

Was genau klappt daran denn nicht?

//beim aufladen:
ang_diff(differenceAng, my.pan, lkw.pan);

und dann jeden frame:
vec_set(my.pan, lkw.pan);
ang_rotate(my.pan, differenceAng);


~"I never let school interfere with my education"~
-Mark Twain
Re: Winkelberechnungen [Re: IngoS.] #362966
03/10/11 14:55
03/10/11 14:55
Joined: May 2002
Posts: 7,441
ventilator Offline
Senior Expert
ventilator  Offline
Senior Expert

Joined: May 2002
Posts: 7,441
mit ang_add() liegst du schon richtig. einfach immer den gespeicherten winkel vom gegenstand zum momentanen winkel des fahrzeugs addieren (oder umgekehrt, es kommt da glaube ich auf die reihenfolge an und man muss meistens etwas experimentieren).

edit: gleichzeitig gepostet. laugh

Re: Winkelberechnungen [Re: ventilator] #362970
03/10/11 15:08
03/10/11 15:08
Joined: Mar 2002
Posts: 154
Zschornewitz, Sachsen-Anhalt, ...
I
IngoS. Offline OP
Member
IngoS.  Offline OP
Member
I

Joined: Mar 2002
Posts: 154
Zschornewitz, Sachsen-Anhalt, ...
...naja ich weis auch nicht warum es nicht funktioniert. Wenn ich beim Aufladen die Winkeldifferenz so berechne:

ang_diff(Item.aANG,Item.pan,KFZ.pan);

und nach dem Fahren es wieder auf das Item übertrage mit:

vec_set(Item.pan,KFZ.pan);
ang_add(Item.pan,Item.aANG);

haut es nicht hin, die Ladung neigt sich je nach Neig- und Kippwinkel des KFZ. Hab schon alles mögliche versucht, auch mit ang_rotate usw.

Einzige Lösung die funktioniert ist wenn ich beim Aufladen den Winkel des KFZ und des Gegenstandes sichere und dann über die Differenz der KFZ Winkel das Item rotiere. Dann bräuchte ich aber einen Vector mehr zum speichern, aber das wollte ich gern verhindern, da noch eine Client/server Mechanismus dran hängt und ich Traffic sparen will.

Re: Winkelberechnungen [Re: IngoS.] #362974
03/10/11 15:27
03/10/11 15:27
Joined: May 2002
Posts: 7,441
ventilator Offline
Senior Expert
ventilator  Offline
Senior Expert

Joined: May 2002
Posts: 7,441
versuchs mal statt ang_diff() mit vec_rotateback().

vec_set(Item.aANG, Item.pan);
vec_rotateback(Item.aANG, KFZ.pan);

Re: Winkelberechnungen [Re: ventilator] #362979
03/10/11 15:49
03/10/11 15:49
Joined: Mar 2002
Posts: 154
Zschornewitz, Sachsen-Anhalt, ...
I
IngoS. Offline OP
Member
IngoS.  Offline OP
Member
I

Joined: Mar 2002
Posts: 154
Zschornewitz, Sachsen-Anhalt, ...
...tja, genau das habe ich auch schon getan, aber auch das haut nicht hin. Ich habe einfach die Vermutung das die anfangs berechnete Winkeldifferenz egal wie ich sie berechne nicht mehr anzuwenden ist, wenn das Fahrzeug fährt und die Winkel quasi umspringen.

Also ich meine wenn das Fahrzeug durch c_rotate bewegt wurde können ja pan,tilt,roll völlig unterschiedlich werden, aber das fahrzeug immernoch in die gleiche Richtung sein.

Ich habe das heute schon ein paar Stunden alles mir logische ausprobiert, leider ohne Erfolg.

Re: Winkelberechnungen [Re: ventilator] #362980
03/10/11 15:51
03/10/11 15:51
Joined: Mar 2002
Posts: 154
Zschornewitz, Sachsen-Anhalt, ...
I
IngoS. Offline OP
Member
IngoS.  Offline OP
Member
I

Joined: Mar 2002
Posts: 154
Zschornewitz, Sachsen-Anhalt, ...
Trotzdem vielen Dank Euch beiden, vielleicht kommt mir ja noch die leuchtende Idee morgen ;-)

Re: Winkelberechnungen [Re: IngoS.] #362982
03/10/11 16:00
03/10/11 16:00
Joined: May 2002
Posts: 7,441
ventilator Offline
Senior Expert
ventilator  Offline
Senior Expert

Joined: May 2002
Posts: 7,441
das funktioniert aber ganz sicher so auf die art. laugh nur ist es schwierig zu helfen, ohne es selbst an einem beispiel auszuprobieren.

Re: Winkelberechnungen [Re: IngoS.] #362986
03/10/11 16:17
03/10/11 16:17
Joined: Jun 2006
Posts: 2,640
Earth
Germanunkol Offline
Expert
Germanunkol  Offline
Expert

Joined: Jun 2006
Posts: 2,640
Earth
Ne, vec_rotateback rotiert ja 'ne richtung, keinen winkel.

Ich hatte mal genau dieses Problem, mit Pfeilen die in einem Körper stecken bleiben sollten. Irgendwie haben wir das damals hinbekommen...

Okay, ich hab's mal ausprobiert. Der Trick hier ist, dass ich einfach jeden Frame das Objekt so drehe wie das parent objekt sich gedreht hat.
Code:
VECTOR dirRestore, oldAng;
	vec_diff(dirRestore, you.x, my.x);
	vec_rotateback(dirRestore, my.pan);
	VECTOR angRestore;
	
	while(my)
	{
		my.pan += (key_cul-key_cur)*time_step*6;
		my.tilt += (key_cuu-key_cud)*time_step*6;
		
		vec_set(temp, dirRestore);
		vec_rotate(temp, my.pan);
		vec_set(you.x, temp);
		
		ang_diff(angRestore, my.pan, oldAng);
		ang_add(you.pan, angRestore);

		vec_set(oldAng, my.pan);
		wait(1);
	}


Bei mir funktionierts.

Edit: hatte noch vergessen: am anfang (wenn das objekt draufgeladen wird) musst du unbedingt
vec_set(oldAng, my.pan); machen. Sonst springt es im ersten frame danach, weil oldAng noch 0,0,0 ist und damit ang_diff(angRestore, my.pan, oldAng); quark zurückgibt.

Last edited by Germanunkol; 03/10/11 16:20.

~"I never let school interfere with my education"~
-Mark Twain
Re: Winkelberechnungen [Re: Germanunkol] #362988
03/10/11 16:25
03/10/11 16:25
Joined: May 2002
Posts: 7,441
ventilator Offline
Senior Expert
ventilator  Offline
Senior Expert

Joined: May 2002
Posts: 7,441
ach ja, stimmt. vec_rotateback() ist falsch. es müsste ein ang_rotateback() geben. laugh

Page 1 of 4 1 2 3 4

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1