Forum de la communauté SFML

Bindings - autres langages => C => Discussion démarrée par: HomegaSuixx le Septembre 08, 2018, 03:50:04 pm

Titre: sfTransform rend des valeurs fausses
Posté par: HomegaSuixx le Septembre 08, 2018, 03:50:04 pm
Bonjour,

Je rencontre des problèmes avec toutes les fonctions sfTransform.
Elles rendent des valeurs fausses.

Code :
        /* Creation du Array de vertex et du PrimitiveType */

        sfVertexArray *a = sfVertexArray_create();
        sfVertexArray_setPrimitiveType(a, sfLines);

        /* Appends de 2 Points */

        sfVertexArray_append(a, (sfVertex){(sfVector2f){100, 100}, sfRed, (sfVector2f){0, 0}});    // P1
        sfVertexArray_append(a, (sfVertex){(sfVector2f){150, 100}, sfRed, (sfVector2f){0, 0}});    // P2
       
        /* Creation de la Transformation */

        sfTransform t;
        sfTransform_translate(&t, -100, -100);
       
        /* Transformation sur mes 2 Points */

        sfVertexArray_getVertex(a, 0)->position = sfTransform_transformPoint(&t, sfVertexArray_getVertex(a, 0)->position);
        sfVertexArray_getVertex(a, 1)->position = sfTransform_transformPoint(&t, sfVertexArray_getVertex(a, 1)->position);
 

Après transformation, le resultat est (0.00, -nan).
Changer la translation par une rotation avec center en (0, 0) donne :
P1:(0.00, 91650810461577940041728.00)
P2:(1184307934834922094592.00, 114563522084171679793152.00)
Titre: Re: sfTransform rend des valeurs fausses
Posté par: Laurent le Septembre 08, 2018, 04:01:34 pm
Si c'est sfTransform qui pose problème, a-t-on vraiment besoin de tout le bazar avec sfVertexArray à côté ? Parce que là, ça rajoute plein de causes possibles de problème, pas seulement sfTransform. Essaye de fournir un code complet minimal qui démontre le problème clairement, sans superflu.

Ensuite, cette syntaxe :
Citer
(sfVector2f){100, 100}
... c'est vraiment standard en C ? Si tu essayes avec une syntaxe un peu plus commune, est-ce que ça change quelque chose ?

Autre chose, ton sfTransform "t" n'est jamais initialisé, il faudrait lui affecter sfTransform_Identity avant toute chose (c'est la cause la plus probable de ton problème).

Et enfin, tu utilises quel compilateur et quelle version de SFML ?
Titre: Re: sfTransform rend des valeurs fausses
Posté par: HomegaSuixx le Septembre 11, 2018, 06:11:11 pm
C'est bon j'ai réglé le problème.

Merci de ta réponse Laurent.
Titre: Re: sfTransform rend des valeurs fausses
Posté par: Laurent le Septembre 11, 2018, 08:53:39 pm
Je pense que ce serait utile, pour les autres personnes qui auraient des problèmes similaires, de donner la solution ;)