Gamestudio Links
Zorro Links
Newest Posts
Max Number of Strategies in /Strategy folder
by Martin_HH. 06/16/26 11:13
Z9 getting Error 058
by jcl. 06/16/26 09:51
How to select between IB accounts by script?
by AndrewAMD. 06/13/26 15:44
Zorro tutorial ideas?
by AndrewAMD. 06/13/26 15:01
Zorro 3.01 recoded MMI function issue
by 11honza11. 06/13/26 11:40
Stooq now requires an API key
by AndrewAMD. 06/11/26 17:55
AUM Magazine
Latest Screens
Dorifto samurai
Shadow 2
Rocker`s Revenge
Stug 3 Stormartillery
Who's Online Now
2 registered members (TipmyPip, Martin_HH), 2,979 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
Newest Members
Student_64151, Koti, curry, DeepxKalsi, Samed
19219 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Problem mit Rotationsmatrix #401355
05/17/12 18:22
05/17/12 18:22
Joined: Aug 2011
Posts: 133
Germany, Supergeheimes Hinter-...
G
gameplan Offline OP
Member
gameplan  Offline OP
Member
G

Joined: Aug 2011
Posts: 133
Germany, Supergeheimes Hinter-...
Hallo,

ich versuche eine Entity mit Hilfe einer Rotationsmatrix für Drehungen um beliebige Achsen im Raum zu verschieben. Später möchte ich damit größere Entitygruppen um fixpunkte rotieren lassen. Als Rotationsachse möchte ich die "pan-achse" der jeweiligen Entity verwenden. Das funktioniert aber irgendwie nicht. Hat jemand eine Idee wieso nicht? Hier mein Code für die Rotation um den globalen Koordinatenursprung:
Quote:


VECTOR n_vec;
var n1;
var n2;
var n3;
var s;
var c;
var t;
VECTOR vec_pos_old;

ang_rotate(mouse_ent.pan,vector(degree,0,0)); //rotiert die enity um sich selbst
vec_set(vec_pos_old,mouse_ent.x);//alte entityposition
vec_for_angle(n_vec,mouse_ent.pan);//richtungsvektor der entity
n1 = n_vec.x;
n2 = n_vec.y;
n3 = n_vec.z;

s = sinv(degree);
c = cosv(degree);
t = 1-c;

mouse_ent.x = ( ((n1^2)*t+c) *vec_pos_old.x + (n1*n2*t-n3*s) *vec_pos_old.y + (n1*n3*t+n2*s) *vec_pos_old.z );
mouse_ent.y = ( (n2*n1*t+n3*s) *vec_pos_old.x + ((n2^2)*t+c) *vec_pos_old.y + (n2*n3*t-n1*s) *vec_pos_old.z );
mouse_ent.z = ( (n3*n1*t-n2*s) *vec_pos_old.x + (n3*n2*t+n1*s) *vec_pos_old.y + ((n3^2)*t+c) *vec_pos_old.z );



Dankesehr

Last edited by gameplan; 05/17/12 18:25.

Version: A8 free
OS: Windows 10
Re: Problem mit Rotationsmatrix [Re: gameplan] #401367
05/17/12 21:57
05/17/12 21:57
Joined: Aug 2011
Posts: 133
Germany, Supergeheimes Hinter-...
G
gameplan Offline OP
Member
gameplan  Offline OP
Member
G

Joined: Aug 2011
Posts: 133
Germany, Supergeheimes Hinter-...
Da ich mit der Methode oben nicht weiter gekommen bin, habe ich es nun anders versucht, leider auch mit wenig Erfolg. Diesmal habe ich versucht, die Rotation im lokalen Entitykoordinatensystem vorzunehmen, wodurch ich eine einfachere Rotationsmatrix (hier nur für die lokale z-Achse der Entity) verwenden kann. Vor und nach der Rotation wird jeweils eine Koordinatentransformation durchgeführt. Allerdings funktioniert auch das nicht. Liegt hier vielleicht ein generelles Problem vor, das ich einfach nicht sehe?

var alpha_w;
alpha_w += 45;
VECTOR ent_local_pos_new;
VECTOR ent_local_pos_old;
VECTOR mouse_ent_new;
var c;
var s;

vec_set(ent_local_pos_old,mouse_ent.x);
vec_to_ent(ent_local_pos_old,mouse_ent);

c = cosv(alpha_w);
s = sin(alpha_w);

ent_local_pos_new.x = c * ent_local_pos_old.x - s * ent_local_pos_old.y;
ent_local_pos_new.y = s * ent_local_pos_old.x + c * ent_local_pos_old.y;
ent_local_pos_new.z = ent_local_pos_old.z;

vec_for_ent(ent_local_pos_new,mouse_ent);
vec_set(mouse_ent.x,ent_local_pos_new);

Last edited by gameplan; 05/17/12 22:24.

Version: A8 free
OS: Windows 10
Re: Problem mit Rotationsmatrix [Re: gameplan] #401565
05/21/12 18:09
05/21/12 18:09
Joined: Aug 2011
Posts: 133
Germany, Supergeheimes Hinter-...
G
gameplan Offline OP
Member
gameplan  Offline OP
Member
G

Joined: Aug 2011
Posts: 133
Germany, Supergeheimes Hinter-...
Hier ein Nachtrag. Habe das Problem gelöst, vielleicht hilft das ja noch jemand anderem. Ich habe immer mit jedem Durchlauf den Winkel aufaddiert. Das macht aber keinen Sinn, da ja immer nur die Differenz des Winkels von der derzeitigen zur nächsten Position eingesetzt werden muss.


Version: A8 free
OS: Windows 10

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

Gamestudio download | 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