Historique des modifications - Message

Message #4231

Sujet: Problème de rotation/déplacement


TypeDateAuteurContenu
Dernière modification11-06-2008 10:33:29samsoft
Je crois saisir votre concept de local, global. Mais même avec votre code, cela ne roule pashmm

void CEventReceiver::majOfPos()
{
    if(Nmodele != 0 && isMoving == true)
    {
        irr::core::vector3df rot = Nmodele->getRotation();
        irr::core::vector3df axe_z_local = irr::core::vector3df(cos(rot.Y), 0, sin(rot.Y));
        axe_z_local.normalize();

        if(move == forward)
        {
            Nmodele->setPosition(Nmodele->getPosition()+axe_z_local);
        }
        else if(move == backward)
        {
            Nmodele->setPosition(Nmodele->getPosition()-axe_z_local);
        }
        else if(move == turnLeft)
        {
            rot.Y--;
        }
        else if(move == turnRight)
        {
            rot.Y++;
        }
        Nmodele->setRotation(irr::core::vector3df(rot.X, rot.Y, rot.Z));
    }
}

J'ai vérifie, c'est bien la variable Y qu'il faut modifier.
axe_z_local.normalize();

Veut il dire qu'on transforme les coordonnées en norme ?

Faut il uniquement utiliser le vecteur_z ?


PS: Au lycée ben moi j'ai vu vecteur... (2d et 3d pour coordonnées) là je suis en prem S mais pas de rotation (c'est en term) et puis l'arithémique/analyse (suite, fonction, proba) j'adore ca mais la géométrique (excepté l'analytique qui ressemble à la physique) j'aime passmile
Création du message11-06-2008 10:32:12samsoft
Je crois saisir votre concept de local, global. Mais même avec votre code, cela ne roule pashmm

void CEventReceiver::majOfPos()
{
    if(Nmodele != 0 && isMoving == true)
    {
        irr::core::vector3df rot = Nmodele->getRotation();
        irr::core::vector3df axe_z_local = irr::core::vector3df(cos(rot.Y), 0, sin(rot.Y));
        axe_z_local.normalize();

        if(move == forward)
        {
            Nmodele->setPosition(Nmodele->getPosition()+axe_z_local);
        }
        else if(move == backward)
        {
            Nmodele->setPosition(Nmodele->getPosition()-axe_z_local);
        }
        else if(move == turnLeft)
        {
            rot.Y--;
        }
        else if(move == turnRight)
        {
            rot.Y++;
        }
        Nmodele->setRotation(irr::core::vector3df(rot.X, rot.Y, rot.Z));
    }
}

J'ai vérifie, c'est bien la variable Y qu'il faut modifier.
axe_z_local.normalize();

Veut il dire qu'on transforme les coordonnées en norme ?

Faut il uniquement utiliser le vecteur_z ?


PS: Au lycée ben moi j'ai vu vecteur... (2d et 3d pour coordonnées) là je suis en prem S mais pas de rotation (c'est en term) et puis l'arithémique/analyse (suite, fonction, proba) j'adore ca mais la géométrique (excepté l'analytique qui ressemble à la physique) j'aime passmile

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
103 invités en ligne
membre en ligne: -
RSS Feed