luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 2008
-
14 avril 2006 à 19:41
dPompei2
Messages postés55Date d'inscriptionsamedi 27 mars 2004StatutMembreDernière intervention 1 septembre 2006
-
19 avril 2006 à 16:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 20081 17 avril 2006 à 16:46
lol je sens qu'il est en pleine detresse!
Moi je post juste pour dire que j'ai me bien le :
kirua-> "au temps pour moi"
pourquoi pas "Oh taon pour moi"
Variante " au tant pour mois" ?! lol j'arrete.Sinon ce serait mentir en cochant la case 'J'approuve la charte de bonne conduite que je viens de lire ci-dessus.'
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 16 avril 2006 à 13:09
Evidemment, mais si tu cherchais sur le net, tu n'aurais pas a attendre que qqn réponde.
dans ton fonction.h:
la définition
dans ton fonction.c
#include "fonction.h"
et l'implémentation de ta fonction.
adess00
Messages postés261Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention27 septembre 20081 15 avril 2006 à 15:47
lol c pas grave
je l utilise et sa marche mais la j ai un autre probleme que je ne comprend vraiment pas
Sa deconne pour les fonctions. Il me sort undefined reference to Load
Pourtant j ai declarer ma f° Load dans fonction.h que main.c inclue donc et la fonction load se trouve dans chargement.c
Apparemment il ne trouve pas la fonction mas je ne comprend pas pourquoi ?
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 15 avril 2006 à 15:45
Wouuuuuups, désolé, j'avais pas vu qu'il t'en parlait, je n'ai lu que jusque 2-3 messages avant le dernier, au temps pour moi.
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 15 avril 2006 à 15:44
Pour rendre tes variables globales visibles depuis différents .c, renseigne-toi sur le mot clef "extern" du langage C, ça va faire des miracles :).
Bonne continuation!
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 14 avril 2006 à 23:35
Quand tu seras confrontés au problème des .h, tu comprendras :) que t'as pas le choix.
adess00
Messages postés261Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention27 septembre 20081 14 avril 2006 à 22:54
vertex array ?
Jvenai de faire les display lists lol
C pas grave je verrai plus tard
Je comptai pas mettre une fonction par fichier mais je les regroupe juste
Pour l instant sa peut parraitre vide ouai mais j anticipe
J ai compris pour les .c mais ce qui est vraiment pas pratique je trouve c est d etre obligé de redeclarer les variables globales
Sa me fait vraiment prout sa
Bon j y retourne :)
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 14 avril 2006 à 22:13
Mais lol, je sais de quoi je parle.
"dans des .h au moins c est clair" ca, CA NE MARCHE PAS !
Si deux fichiers font appel au fichier .h, tu auras "error function redefined" ou un truc du genre.
Et par définition du ".h", tu vas pas avoir un ".h" par fonction !!
Si t'as 200 fonctions, tu vas pas te trimbaler avec 200 fichiers !
Moi je te parle pas d'un seul fichier. Je te dis de séparer tes fonctions dans un .c et tu mets les définitions de fonction dans le .h, mais tu ne sembles pas comprendre ce que je dis. Il faudrait que tu jettes un coup d'oeil aux tutoriaux C.
Sinon en effet, pour un morphing c'est pas utilisable les display list. Mais c'est pour ca qu'il existe les vertex array. C'est ca qu'il faut utiliser pour afficher des objets.
Juste pour te donner une idée, ca va 10 ou 100 vois plus vite que begin/end, ca dépend du nombre de polygones que tu affiches.
Pour tes variables globales. Tu les déclares en global dans ton fichier principal:
int x = 0;
puis dans tes fichiers .c:
extern int x;
adess00
Messages postés261Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention27 septembre 20081 14 avril 2006 à 21:59
Ok maintenant je c a koi sa sert
D apres ce que tu me dit je doit mettre toutes mes fonctions dans un fichier.c
Mais sa va etre illisible !!! Jpourai pas m y retrouver
Et quand je fait plusieurs .c les variables globales ne marchent pas alors j ai mi mes fonctions dans des .h au moins c est clair
Pour l instant sa va mais quand je vais ameliorer mon prog le nombre de f° va augmenter et jpourrai pas m y retrouver dans un seul fichier
Il y a peut etre d autres methodes je sais pas
En tout cas merci de ton aide
Je viens de compreendre l utilité des playlists c est pratique pour un objet fixe mais pour du morphing sa reviendrai au meme muisqu il faudrait reconnstruire le polygon mais j en suis pas au deformations de mon vaisseau jvai donc le playlister pour l instant
a+ !
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 14 avril 2006 à 21:44
1 n'est pas un flottant. Ya des langages ou tu pourrais pas écrire ca:
float x = 1;
Ca provoquerait une erreur.
Bien sur tu peux mettre 1, mais c'est pas rigoureux. Et point de vue lisiblité, on voit pas que c'est un flottant autrement qu'en regardant le type de la variable.
Autrement, un ".h" c'est fait pour mettre des définitions de fonctions et pas des implémentations.
Donc toutes tes définitions tu les mets dans un fichier mes_fonctions.h par exemple puis toute les implémentation dans mes_fonctions.c.
Sinon, en effet, faut utiliser un timer. Un timer combiner a une vitesse de déplacement.
adess00
Messages postés261Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention27 septembre 20081 14 avril 2006 à 21:33
Euh oui mais je vois pas comment faire, faut utiliser un timer ? pour appeler la f° de dessin toutes les 1/25 secondes ?
Pourquoi je peux pas mettre dans les .h mes fonctions ?
Si je met tout dans main.c sa va etre bordelique nan ?
Jvai aller voir les dispays lists
Et pour les types ben pour moi 1 est un float et puis c pas pratique comme ecriture je trouve le 1.0f
Sinon merci de tes commentaires jvai chercher un tuto sur les display lists
a+
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 14 avril 2006 à 19:50
Bas pour l'améliorer, faudrait deja que tu évites que sur un pc qui affiche 500 images par seconde, ce soit injouable car beaucoup trop rapide.
Autre chose, les ".h" c'est pas fait pour mettre des fonctions dedans.
Autre chose:
for (i=0;i!=7616;i+=4)
{
glTexCoord2f(0,0);glVertex3f(model[i].x,model[i].y,model[i].z);
glTexCoord2f(0,1);glVertex3f(model[i+1].x,model[i+1].y,model[i+1].z);
glTexCoord2f(1,1);glVertex3f(model[i+2].x,model[i+2].y,model[i+2].z);
glTexCoord2f(1,0);glVertex3f(model[i+3].x,model[i+3].y,model[i+3].z);
}
Tu n'iras pas loin avec ce genre de chose. glBegin/glEnd, c'est totalement inefficace. Si tu débutes, regarde les display list, ou les vertex array.
Pour la rigueur, puisque le compilo C ne l'est pas:
glColor4f(1,1,1,1);
à remplacer par: glColor4f(1.0f,1.0f,1.0f,1.0f);
Meme si ca change pas grand chose. Faut juste respecter les types.
Aller ++
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 14 avril 2006 à 19:41
J'arrive pas a compiler, j'ai une erreur de lien sur wglDeleteContext@4. Je pige pas. Tu peux mettre un exe que tu renommes en .ex ?
19 avril 2006 à 16:34
Si t'as encore des questions ou besoin d'aide, demande moi par MP quand tu veux ;)
19 avril 2006 à 03:36
Je vais essayer
18 avril 2006 à 22:26
Je me coucherais moins con ce soir!
18 avril 2006 à 20:24
mes_maths.h:
==========
#ifndef MES_MATHS_H
#define MES_MATHS_H
int addition( int a, int b );
int soustraction( int a, int b );
#endif /* MES_MATHS_H */
mes_maths_ou_meme_un_autre_nom.c:
===============================
#include "mes_maths.h"
int addition( int a, int b )
{
return a + b;
}
int soustraction( int a, int b )
{
return a - b;
}
main.c:
=====
#include "mes_maths.h"
int ma_variable_globale = 0;
int main( int, char ** )
{
int reponse = 0;
reponse = addition( 1, 1 );
reponse = soustraction( reponse, 1 );
return 0;
}
main.h:
=====
#ifndef MAIN_H
#define MAIN_H
extern int ma_variable_globale;
#endif /* MAIN_H */
maintenant dans chaque fichier ou tu utilises ma_variable_globale, tu dois faire #include "main.h" au debut ok ?
conseil: entoure toujours tes .h par les #ifndef #define et #endif, sa t'evitera des prolemmes ;)
17 avril 2006 à 19:42
autre chose ?
17 avril 2006 à 16:46
Moi je post juste pour dire que j'ai me bien le :
kirua-> "au temps pour moi"
pourquoi pas "Oh taon pour moi"
Variante " au tant pour mois" ?! lol j'arrete.Sinon ce serait mentir en cochant la case 'J'approuve la charte de bonne conduite que je viens de lire ci-dessus.'
16 avril 2006 à 13:09
dans ton fonction.h:
la définition
dans ton fonction.c
#include "fonction.h"
et l'implémentation de ta fonction.
15 avril 2006 à 15:47
je l utilise et sa marche mais la j ai un autre probleme que je ne comprend vraiment pas
Sa deconne pour les fonctions. Il me sort undefined reference to Load
Pourtant j ai declarer ma f° Load dans fonction.h que main.c inclue donc et la fonction load se trouve dans chargement.c
Apparemment il ne trouve pas la fonction mas je ne comprend pas pourquoi ?
15 avril 2006 à 15:45
15 avril 2006 à 15:44
Bonne continuation!
14 avril 2006 à 23:35
14 avril 2006 à 22:54
Jvenai de faire les display lists lol
C pas grave je verrai plus tard
Je comptai pas mettre une fonction par fichier mais je les regroupe juste
Pour l instant sa peut parraitre vide ouai mais j anticipe
J ai compris pour les .c mais ce qui est vraiment pas pratique je trouve c est d etre obligé de redeclarer les variables globales
Sa me fait vraiment prout sa
Bon j y retourne :)
14 avril 2006 à 22:13
"dans des .h au moins c est clair" ca, CA NE MARCHE PAS !
Si deux fichiers font appel au fichier .h, tu auras "error function redefined" ou un truc du genre.
Et par définition du ".h", tu vas pas avoir un ".h" par fonction !!
Si t'as 200 fonctions, tu vas pas te trimbaler avec 200 fichiers !
Moi je te parle pas d'un seul fichier. Je te dis de séparer tes fonctions dans un .c et tu mets les définitions de fonction dans le .h, mais tu ne sembles pas comprendre ce que je dis. Il faudrait que tu jettes un coup d'oeil aux tutoriaux C.
Sinon en effet, pour un morphing c'est pas utilisable les display list. Mais c'est pour ca qu'il existe les vertex array. C'est ca qu'il faut utiliser pour afficher des objets.
Juste pour te donner une idée, ca va 10 ou 100 vois plus vite que begin/end, ca dépend du nombre de polygones que tu affiches.
Pour tes variables globales. Tu les déclares en global dans ton fichier principal:
int x = 0;
puis dans tes fichiers .c:
extern int x;
14 avril 2006 à 21:59
D apres ce que tu me dit je doit mettre toutes mes fonctions dans un fichier.c
Mais sa va etre illisible !!! Jpourai pas m y retrouver
Et quand je fait plusieurs .c les variables globales ne marchent pas alors j ai mi mes fonctions dans des .h au moins c est clair
Pour l instant sa va mais quand je vais ameliorer mon prog le nombre de f° va augmenter et jpourrai pas m y retrouver dans un seul fichier
Il y a peut etre d autres methodes je sais pas
En tout cas merci de ton aide
Je viens de compreendre l utilité des playlists c est pratique pour un objet fixe mais pour du morphing sa reviendrai au meme muisqu il faudrait reconnstruire le polygon mais j en suis pas au deformations de mon vaisseau jvai donc le playlister pour l instant
a+ !
14 avril 2006 à 21:44
float x = 1;
Ca provoquerait une erreur.
Bien sur tu peux mettre 1, mais c'est pas rigoureux. Et point de vue lisiblité, on voit pas que c'est un flottant autrement qu'en regardant le type de la variable.
Autrement, un ".h" c'est fait pour mettre des définitions de fonctions et pas des implémentations.
Donc toutes tes définitions tu les mets dans un fichier mes_fonctions.h par exemple puis toute les implémentation dans mes_fonctions.c.
Sinon, en effet, faut utiliser un timer. Un timer combiner a une vitesse de déplacement.
14 avril 2006 à 21:33
http://neuroshok.free.fr/LightReactor.exe
Euh oui mais je vois pas comment faire, faut utiliser un timer ? pour appeler la f° de dessin toutes les 1/25 secondes ?
Pourquoi je peux pas mettre dans les .h mes fonctions ?
Si je met tout dans main.c sa va etre bordelique nan ?
Jvai aller voir les dispays lists
Et pour les types ben pour moi 1 est un float et puis c pas pratique comme ecriture je trouve le 1.0f
Sinon merci de tes commentaires jvai chercher un tuto sur les display lists
a+
14 avril 2006 à 19:50
Autre chose, les ".h" c'est pas fait pour mettre des fonctions dedans.
Autre chose:
for (i=0;i!=7616;i+=4)
{
glTexCoord2f(0,0);glVertex3f(model[i].x,model[i].y,model[i].z);
glTexCoord2f(0,1);glVertex3f(model[i+1].x,model[i+1].y,model[i+1].z);
glTexCoord2f(1,1);glVertex3f(model[i+2].x,model[i+2].y,model[i+2].z);
glTexCoord2f(1,0);glVertex3f(model[i+3].x,model[i+3].y,model[i+3].z);
}
Tu n'iras pas loin avec ce genre de chose. glBegin/glEnd, c'est totalement inefficace. Si tu débutes, regarde les display list, ou les vertex array.
Pour la rigueur, puisque le compilo C ne l'est pas:
glColor4f(1,1,1,1);
à remplacer par: glColor4f(1.0f,1.0f,1.0f,1.0f);
Meme si ca change pas grand chose. Faut juste respecter les types.
Aller ++
14 avril 2006 à 19:41