Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Thu Mar 28, 2024 10:21 pm

All times are UTC




Post new topic Reply to topic  [ 6 posts ] 
Author Message
PostPosted: Fri Jan 12, 2007 9:01 am 
Offline

Joined: Fri Jan 12, 2007 8:54 am
Posts: 7
Voila, suite a un projet de création d'un simulateur d'avion sur raydium, nous avons rencontré un probleme au niveau de l'application d'une force sur le nez de l'avion.

L'avion doit décollé a la vertical... c'est a dire le nez de lavion en l'air, puis se met a plat pour pouvoir avancé correctement.

Le probleme c'est que la force que nous appliquons pour faire avancer l'avion doit pouvoir changer en fonction de la position de l'avion ( vertical - au démarage ou attérissage- ou horizontal - en vol normal - ).

donc ma question:
comment applpiquer une force dans le repere relatif a l'objet et non pas à la carte ?


Merci d'avance


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 12, 2007 10:24 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Salut,

A l'heure actuelle, la bonne manière de réaliser ceci est d'utiliser un moteur de type RAYDIUM_ODE_MOTOR_ROCKET. Ces moteurs se comportents donc comme des fusées (action -> réaction), sont positionnés et peuvent êtres orientés au besoin. Sans forcément être exhaustif, voilà un rapide résumé de l'utilisation de ces derniers :

création :
Code:
raydium_ode_motor_create("react",object,RAYDIUM_ODE_MOTOR_ROCKET);
raydium_ode_motor_rocket_set_name("react","element",0,0,0); // position sur l'élément


utilisation :
Code:
raydium_ode_motor_speed_name("react",0.2);
raydium_ode_motor_rocket_orientation_name("react",0,90,180); // orientation


Tout ça est extrait de test6.c, et la doc doit parler de ces moteurs plus ou moins dans le détail. N'hésite pas à répondre ici si tout ça n'est pas clair.


Top
 Profile  
 
 Post subject: Application d'une force
PostPosted: Fri Jan 12, 2007 10:47 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Bonjour,

Ode permet d'appliquer une force donnée en un point donné.

D'après le code d'ode la force et la position sont transposées dans le repère de l'objet avant leur application.

La solution moteur "rocket" me semble plus facile à utiliser et doit surement faire la meme chose (xfennec ?)



Code:
void dBodyAddRelForceAtRelPos (dBodyID b, dReal fx, dReal fy, dReal fz,
                dReal px, dReal py, dReal pz)
{
  dAASSERT (b);
  dVector3 frel,prel,f,p;
  frel[0] = fx;
  frel[1] = fy;
  frel[2] = fz;
  frel[3] = 0;
  prel[0] = px;
  prel[1] = py;
  prel[2] = pz;
  prel[3] = 0;
  dMULTIPLY0_331 (f,b->R,frel);
  dMULTIPLY0_331 (p,b->R,prel);
  b->facc[0] += f[0];
  b->facc[1] += f[1];
  b->facc[2] += f[2];
  dCROSS (b->tacc,+=,p,f);
}


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 12, 2007 11:50 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Les moteurs rockets utilisent effectivement dBodyAddRelForceAtRelPos() en interne :) (raydium/ode.c, ligne 2114)


Top
 Profile  
 
 Post subject: attention amalgame
PostPosted: Sun Jan 14, 2007 8:51 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Bonjour,

Effectivement les rocket utilisent un
Code:
 dBodyAddRelForceAtRelPos


Par contre il y a peut être un risque de confusion en speed et force.

D'ailleurs la primitive est claire:
Code:
void raydium_ode_motor_speed(int j, dReal force)


la vitesse dans le cas d'une rocket est donc la force appliquée.

Pendant combien de temps cette force est elle appliquée ? (un timestep )


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 14, 2007 9:06 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Ta clarification sur les termes est tout à fait correcte. La même fonction servant pour les différents types de moteurs, le vocabulaire est effectivement approximatif.

L'objectif de la fonction ...motor_speed() est de configurer le moteur : la force s'applique donc jusqu'a un ordre contraire (force=0, par exemple).


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 10 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group