See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: Animer des panneaux solaires  (Read 1706 times)

0 Members and 1 Guest are viewing this topic.

Offline NLS le pingouin

  • Legend
  • ******
  • Posts: 826
  • Karma: 1
12 October 2009, 09:17:09
Bonjours,
Je me galère un peu pour animer des panneaux solaires avec la SDK d'orbiter. J'ai réussi à faire des animations, mais dans le
cas d'un déploiement de panneaux solaires, le centre de rotation de chaque panneaux se déplace avec leur translation...
Pourriez-vous m'indiquer des pistes pour passer ce problème?
Merci

« Last Edit: 12 October 2009, 11:08:25 by NLS le pingouin »

Offline MartySpaceLines

  • Legend
  • ******
  • Posts: 1096
  • Karma: 0
Reply #1 - 12 October 2009, 11:08:25
Pour ça, il faut utiliser un truc qui s'appelle "Parent-Child Attachment". Y a un exemple dans le Programmer's Guide, les
samples de la SDK,  et voici un extrait de mon code pour Venus Express:

Code: [Select]
//Anim panneaux solaires (GAUCHE)
static UINT uArrayLeft1 = 11; // No du groupe du Mesh
// Ici, entre les coordonnées en fonction du mesh de départ (la plupart du temps ac les panneaux rentrés)
ArrayLeft1 = new MGROUP_ROTATE (0, &uArrayLeft1, 1, _V(-0.8376536,0,0.3754845), _V(0,1,0), (float)(RAD*90));
anim_ArrayLeft1 = CreateAnimation (0.0);
parentLeft = AddAnimationComponent (anim_arr, 0, 0.5, ArrayLeft1);

static UINT uArrayLeft2 = 12;
ArrayLeft2 = new MGROUP_ROTATE (0, &uArrayLeft2, 1, _V(-0.8532039,0,-0.2018223), _V(0,-1,0), (float)(RAD*180));
anim_ArrayLeft2 = CreateAnimation (0.0);
parentLeft = AddAnimationComponent (anim_arr, 0, 0.5, ArrayLeft2, parentLeft);

static UINT uArrayLeft3 = 5;
ArrayLeft3 = new MGROUP_ROTATE (0, &uArrayLeft3, 1, _V(-0.881386,0,0.5572292), _V(0,1,0), (float)(RAD*180));
anim_ArrayLeft3 = CreateAnimation (0.0);
parentLeft = AddAnimationComponent (anim_arr, 0, 0.5, ArrayLeft3, parentLeft);

Voilà...j'espère que ça t'aidera!


« Last Edit: 12 October 2009, 11:08:25 by MartySpaceLines »
@++

MSL