IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SFML Discussion :

GetPoint ne semble pas tenir compte de setPosition


Sujet :

SFML

  1. #1
    Membre régulier Avatar de GrosLapin
    Homme Profil pro
    Ingénieur et Etudiant
    Inscrit en
    Avril 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur et Etudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 47
    Points : 85
    Points
    85
    Par défaut GetPoint ne semble pas tenir compte de setPosition
    Bonjour à tous,

    Voila le code qui bug :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    ostream& operator << (ostream& os, sf::Vector2f vec)
    {
       os << "("<< vec.x << ","  << vec.y << ")" ;
       return os;
    }
    std::vector<sf::Vector2f> getAllPoint(const sf::RectangleShape& cs)
    {
            std::vector<sf::Vector2f> retour;
            retour.emplace_back(cs.getPosition().x                ,cs.getPosition().y);
            retour.emplace_back(cs.getPosition().x+cs.getSize().x ,cs.getPosition().y);
            retour.emplace_back(cs.getPosition().x+cs.getSize().x ,cs.getPosition().y+ cs.getSize().y);
            retour.emplace_back(cs.getPosition().x                ,cs.getPosition().y+cs.getSize().y);
            return retour;
    }
    int main( int argc, char *argv[])
    {
     
     
     
            sf::RectangleShape bouton2(sf::Vector2f(50,50)) ;
            bouton2.setPosition(10,10);
     
     
            cout    << bouton2.getPoint(0) << "  "
                    << bouton2.getPoint(1) << "  "
                    << bouton2.getPoint(2) << "  "
                    << bouton2.getPoint(3) << "   ";
     
           auto autre =   getAllPoint(bouton2);
           cout << autre[0] << " | " << autre[1] << " | " << autre[2] << " | " << autre[3] << endl;
     
     
        return 0;
    }
    et l'affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (0,0)  (50,0)  (50,50)  (0,50)    (10,10) | (60,10) | (60,60) | (10,60) |
    Et voila là, c'est le drame...

    La fonction getPoin(int) semble ne pas prendre en compte le setPosition....

    Pouvez-vous me dire si j'ai loupé quelque chose ou s'il s'agit d'un bug :/

    Merci a vous

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    Les points d'un sf::Rectangle sont définis à partir de l'origine de la forme géométrique (par défaut 0;0), setPosition ne fait que modifier la position (voir matrice de transformation), mais si tu fais un getPosition normalement les valeurs sont correctes, en résumé pointFinal=getPoint()+getPosition().

  3. #3
    Membre régulier Avatar de GrosLapin
    Homme Profil pro
    Ingénieur et Etudiant
    Inscrit en
    Avril 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur et Etudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 47
    Points : 85
    Points
    85
    Par défaut
    Bonjour BubbleChien,

    Je vais regarder la matrice de transformation.

    GetPosition ne fait que retourner la position que j'ai indiqué dans le "setPosition" donc oui (10,10).

    Ce que je cherche c'est un moyen d'avoir les coordonnées de tous les points d'un "sf::Transformable" getPoint me semblait être la solution mais manifestement il ne fait pas ce que j'attendais.

    Je vais regarder du coté de la matrice.

    édit :

    getTransform () const + transformPoint (float x, float y) const devraient résoudre mon problème.

    Je test ce soir et je te dit

    Des fois tous ce qui manque c'est les mots clés ^^

    Merci

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    C'est bien ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sf::Vector2f p1=rect.getTransform().transformPoint(rect.getPoint(0));

  5. #5
    Membre régulier Avatar de GrosLapin
    Homme Profil pro
    Ingénieur et Etudiant
    Inscrit en
    Avril 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur et Etudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 47
    Points : 85
    Points
    85
    Par défaut
    Ca marche,

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 11/08/2007, 17h27
  2. [vba] ne pas tenir compte des majuscules/minuscules
    Par bungler dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/07/2007, 10h07
  3. [DEBUTANT] comment ne pas tenir compte de la casse?
    Par Jidefix dans le forum Oracle
    Réponses: 5
    Dernier message: 05/01/2007, 13h10
  4. Réponses: 4
    Dernier message: 03/07/2006, 14h42
  5. Ne pas tenir compte des accents dans une requete
    Par zamanika dans le forum Installation
    Réponses: 8
    Dernier message: 08/11/2004, 20h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo