Une question comme ça
Posté le 24/06/2017 17:39
Salut tout le monde,
étant donné Ue j'ai souvent une petite question à poser et que je ne veut pas embêter quelqun sur le live, je crée un topic sur lequel je poserais donc toutes ces questions. Vous pouvez également faire de même sur ce topic.
Donc voilà, 1ere question de ce topic ☺ :
Je bosses actuellement sur des rotations en 3D, et j'ai eu une idée beaucoup plus simple (enfin je pense
) que ce qui a été fait jusqu'à présent, attention : des rotations en utilisant des sinusoides. Rien de nouveau vous me direz, mais si, justement, je ne vous dévoilerai pas toute mon idée mais juste la partie qui me pose problème, voila: pour mes coordonnées de pts j'ai besoin de savoir comment on fait pour avoir les valeurs minimales et maximales de la sinusoide (en cosinus de X) dans deux variables distinctes.
Si quelqun à une idée, il ne se gêne pas
.
PS: ce nouveau systheme (enfin je pense qu'il est nouveau ) n'est q'au stade de test. Je ne sais même pas ce qui va ce passer au lencement du prog (enfin si un peu, mais pas assez pour prédire son conporte ment
)
Citer : Posté le 08/11/2017 17:33 | #
OK merci a nouveau.
Pour Cakeisalie5, du nouveau au sujet du tuto sur le SDK ?
Ajouté le 10/11/2017 à 19:29 :
Hum... je viens de tomber sur le 《gît. Lab》on peut m'en dire plus la dessus, ça m'interesse
Svp
A plus
-Planétarium 2
Citer : Posté le 10/11/2017 20:06 | #
Eh bien, la forge Gitlab est un service Git. Elle permet à ses utilisateurs de créer, gérer, et partager des dépôts Git. Pas mal d'entre nous ont un compte dessus.
Pour information, « Gitlab » signifie Git Laboratory, où Git est un gestionnaire de versions classique. Je te laisse chercher s'il te faut des infos sur Git, tu trouveras l'essentiel en un tour de main et en bien mieux écrit que ce que je pourrais te servir.
Citer : Posté le 11/11/2017 09:34 | #
Donc, je reviens sur le SDK, quelqun peut me redire ou trouver la liste des commandes disponibles pour programmer. Et si il y a quelquepart un guide pour programmer sur le SDK car je ne vois pas comment je peut deviner tout ça...
J'aimerais bien me'lancer la dedans, car j'apprend déjà le C et je voudrais pouvoir l'utiliser sur ma calot (je sais que ce n'est pas tout à fait le même language)
Merci d'avance
Disperseur
-Planétarium 2
Citer : Posté le 11/11/2017 09:49 | #
Les manuels d'utilisation du SDK. Tu y trouveras la doc de fxlib, la liste des fonctions standard supportées, des détails sur les types de structures utilisées parfois, les noms données à chaque touches... c'est assez vaste.
N'hésite pas à demander si tu cherches quelque chose de suffisamment précis ; pour les tutoriels d'utilisation du SDK je ne crois pas qu'il y en ait à cet instant.
Citer : Posté le 11/11/2017 10:31 | #
Ok merci,
mais pour le SDK même si il n'y a pas de tutos, il y a biens un manul, un mode d'emplois, non...?
-Planétarium 2
Citer : Posté le 11/11/2017 10:39 | #
Pour ce qui est du logiciel en lui-même, il n'y a pas grand-chose à savoir : compiler (Ctrl+B), lancer l'émulateur (F5), arrêter l'émulateur (Shift + F5). Vois le wiki.
Pour ce qui est de la programmation, c'est du C avec fxlib. La doc de fxlib est assez explicite pour savoir ce qu'il s'y passe. 'fin si vraiment tu paniques il y a toujours le wiki avec des explications en français.
Citer : Posté le 11/11/2017 11:34 | #
Merci beaucoup, t'étais pas obligé, j'aurais pu chercher moi même...
"Danke" comme ont dit en allemand
A plus
Ajouté le 11/11/2017 à 13:45 :
Le truc, c'est que ça marche, mais il n'y a rien pour expliquer la mise en place des variables (initiqlisation...), comment on structure le prog et tout ce qui va avec le C. Le problème, c'est que je ne sais pas comment ont peut débuter sur un logiciel qui utilise un language pas facile et que l'ont ne te fourni que les commandes...bref, c'est impossible sans guide
Dommage....
Moi, je voulais débuter en essayant de faire un prog qui attend que tu presse une touche et qui t'en donne la valeur... ( et pourtant j'ai des bases en C)
-Planétarium 2
Citer : Posté le 11/11/2017 14:17 | #
Essayons de prendre les choses dans l'ordre. Tu n'es pas obligé de tester avec le logiciel, si tu veux y aller doucement teste ton add-in sur ta calculatrice au tout début.
Ce sont les règles du C. Les variables locales sont initialisées si une valeur est donnée par le programme, les variables globales aussi, mais elles vivent plus longtemps.
La fonction principale est int AddIn_main(int isAppli, unsigned short optionNum). Le paramètre isAppli indique si l'application a été lancée depuis le menu ou depuis une eAct (vois les commentaires dans le programme par défaut pour les valeurs, je les ai oubliées). Quand isAppli indique que l'add-in a été lancé par une eAct, optionNum indique par quelle « voie ». Il peut y avoir jusqu'à 4 voies de lancement différentes dans les eActs. Tout cela est lié aux eStrips, et environ 0 add-in sur Planète Casio s'en sert.
« Normalement » la documentation de fxlib est assez explicite pour que tu puisses comprendre comment utiliser Bdisp_DrawLine_VRAM(int x1, int y1, int x2, int y2). Mais si tu as du mal, demande. Encore une fois, la seule règle pour demander est d'avoir une question précise à poser, et pas « comment on fait un add-in cool ».
Qu'est-ce qu'on a comme fonctions pour récupérer les touches ? Il y a IsKeyUp() et IsKeyDown(), mais il faut leur demander la touche que tu veux, donc c'est pas très efficace. En plus elles n'attendent rien et je crache dessus à longueur de journées. Il y a GetKey() et GetKeyWait() ; la seconde est plus compliquée et en fait elle ne marche pas (il faut le savoir).
Il te reste int GetKey(unsigned int *key), dont il est dit qu'elle renvoie un entier t'indiquant si la touche pressée après attente est une touche caractère, touche de contrôle, touche fonction (en gros), et qui modifie la variable dont l'adresse lui est passée en argument pour y mettre... le numéro de la touche, celui que tu cherches, justement. So far so good ?
L'affichage est plus tricky. Là, il faut se tourner vers les fonctions de texte. Il y en a plusieurs, mais pour reprendre l'exemple donné dans le programme de base, la combinaisons de locate() et de Print() est un choix intéressant. Mais elles ne font pas les formats super pétés comme printf(), elles veulent que tu leur serve directement la chaîne de caractère qui contient les caractères chiffres. Toi, jusque-là, tu as un unsigned int avec un numéro de touche.
Et là, on regarde le document PDF qui parle de la bibliothèque standard, et on se rend compte que même s'il n'y a pas printf(), il y a sprintf(). Je rappelle que toute utilisation de sprintf() nécessite l'inclusion de <stdio.h>, sinon le programme compile mais plante de manière inattendue (il faut le savoir).
Je te laisse inférer la suite ? Si tu as un problème à un endroit, tu peux demander... avec le maximum de précision possible, toujours.
Citer : Posté le 11/11/2017 15:10 | #
Merci ,
Pour la précision, je pense que j'ai été assez clair...j'essayerai de l'être encore plus après
-Planétarium 2
Citer : Posté le 11/11/2017 15:40 | # | Fichier joint
voila le screenshoot de l'erreur:
Ajouté le 11/11/2017 à 16:34 :
Le dossier pdf dont tu parle (bibliothèque standard ), tu peut me redonner le lien stp, je ne sait pas comment le trouver...
-Planétarium 2
Citer : Posté le 11/11/2017 16:41 | #
Il est dans un de mes posts un peu plus haut, le fichier est nommé C Standard Libraries.pdf.
Citer : Posté le 11/11/2017 16:54 | #
ok, mais je parviens pas a mettre en place le sprintf avec la variable unsigned int key <--- un coup de main....svp
merci d'avance...je sais, je n'arrète pas de le dire
-Planétarium 2
Citer : Posté le 11/11/2017 18:33 | #
Qu'est ce que tu souhaites faire exactement ?
sprintf() s'utilise exactement comme printf() sauf que la fonction écrit dans une chaîne que tu lui passes en premier argument, quel est ton problème ?
Citer : Posté le 11/11/2017 18:35 | #
Le problème en fait c'est que je croyais que ce n'étais pas là même chose sur le SDK qu'en C. J'essayé ça demain ok
Merci de l'infos.
But
-Planétarium 2
Citer : Posté le 11/11/2017 19:13 | #
Si c'est dans la bibliothèque standard, c'est pareil partout ! N'oublie pas de déclarer à l'avance une chaîne assez grande pour contenir le résultat...
Citer : Posté le 12/11/2017 11:27 | #
Pourquoi préparer une chaîne. .. rassure moi, je vais l'écrire comme ça :
(Avec la variable "key" en unsigned int )
printf ("KeyValue : %u \n", key)
Puisque tu m'as dit (vous m'avez dit ) que c'était pareil en C qu,avec le SDK. .. je me trompe pas alors...
-Planétarium 2
Citer : Posté le 12/11/2017 11:30 | #
Ah mais attention... la fonction printf() n'est pas supportée, tu dois utiliser sprintf()...
Citer : Posté le 12/11/2017 11:34 | #
Oui,mais ça ne change pas la syntaxe que j'ai mis au dessus...non ?
J'ai juste à remettre le "s" au debut du "printf ("
-Planétarium 2
Citer : Posté le 12/11/2017 11:45 | #
Si c'était les mêmes arguments et les mêmes effets, elle n'aurait pas un nom différent...
Cherche sur Internet le prototype de sprintf() et son fonctionnement. Il y a une différence cruciale.
Citer : Posté le 12/11/2017 13:16 | #
Ben, en fait je l'ai sur la librairie standard dont tu m'as donné le lien, mais le prototype n'est pas très clair :
Int sprintf(char *s, const char *control[ , arg ...])
-Planétarium 2
Citer : Posté le 12/11/2017 13:19 | #
Voyons voir... il y a un « s » devant le nom de la fonction, comme string. Il y a un premier paramètre qui est a priori une chaîne de caractères... mais si tu regardes attentivement, autant le format (control) est de type const char * donc il est en lecture seule, autant le premier paramètre, est de type char *, ce qui laisse entendre que la fonction va vouloir y écrire des choses... toujours pas d'idée ?
printf() effectue le formatage et écrit le résultat sur la sortie standard (ie. dans le terminal, quand on est sur un ordinateur). sprintf() effectue le formatage et écrit le résultat dans une chaîne de caractères, qui lui est passée en premier argument. La calculatrice n'a pas de terminal, c'est pour ça que printf() n'est pas supportée par fxlib. En revanche rien ne l'empêche de posséder sprintf() qui a juste besoin d'un peu de place en mémoire pour écrire son résultat.
Pour information, l'entier renvoyé par sprintf() est le nombre de caractères générés (ie. la longueur du texte après formatage).