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

Caml Discussion :

Librairie graphique et CAML light


Sujet :

Caml

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 18
    Points
    18
    Par défaut Librairie graphique et CAML light
    Bonjour,

    j'ai un problème sous caml light puisque je n'arrive pas à ouvrir des fenêtres ou faire des jolis dessins. La commande #open "graphics";; marche très bien et lorsque j'appelle des fonctions comme open_graph, la fenêtre s'ouvre et se ferme instantanément (juste le temps de voir les contours).

    J'ai essayé sous OCaml, c'est la même mais avec le message d'erreur en plus : "Reference to undefined global `Graphics' " alors que j'ai bien chargé le module via open Graphics;;

    Je suis sous vista et je pense que c'est l'incompatibilité entre un système récent et une version de caml light qui a dut être mise à jour en dernier par un diplodocus. J'ai besoin simplement des fonctions élémentaires, en fait c'est pour dessiner des automates cellulaires pour un TIPE et mon comparse ne connaît que CAML light, on pourrait à la limite passer à OCaml si ça marchait mieux...donc si quelqu'un a une idée pour :
    - savoir pourquoi ce foutu open_graph ne marche pas sous vista
    - me dire comment caml light et le C/C++ peuvent interfacer, dans quel cas au pire je pourrais programmer un ptit module d'affichage indépendant (mais bon ça va être galère pour lui passer des paramètres non ?)


    Voila voila, j'espère ne pas avoir été trop long, si quelqu'un peut m'aider...

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    Citation Envoyé par lovecpp Voir le message
    - me dire comment caml light et le C/C++ peuvent interfacer, dans quel cas au pire je pourrais programmer un ptit module d'affichage indépendant (mais bon ça va être galère pour lui passer des paramètres non ?)

    http://anne-pacalet.developpez.com/t...-cpp-et-ocaml/

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    À mon avis, tu es trop habitué aux différents problèmes de Vista et tu te caches l'erreur : tu ne sais pas bien utiliser le module Graphics, que ce soit de Caml Light ou d'OCaml.

    Ca _pourrait_ être un problème d'installation comme tu dis, mais j'ai l'impression que c'est plutôt un problème d'utilisation et qu'un petit effort pourrait le résoudre. Par exemple en OCaml, si c'est dans le toplevel, tu lui dis bien #load "graphics.cma" avant d'ouvrir le module ? Pour le cas Caml Light, tu exécutes comment ? Dans le toplevel ou dans un exécutable à part ?

  4. #4
    Membre éprouvé
    Avatar de Cacophrene
    Homme Profil pro
    Biologiste
    Inscrit en
    Janvier 2009
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Biologiste

    Informations forums :
    Inscription : Janvier 2009
    Messages : 535
    Points : 1 125
    Points
    1 125
    Par défaut
    Salut !

    lorsque j'appelle des fonctions comme open_graph, la fenêtre s'ouvre et se ferme instantanément (juste le temps de voir les contours).
    De mémoire il faut utiliser Graphics.wait_next_event avec la liste des actions à attendre avant de fermer la fenêtre.

    J'ai essayé sous OCaml, c'est la même mais avec le message d'erreur en plus : "Reference to undefined global `Graphics' " alors que j'ai bien chargé le module via open Graphics;;
    Non ! On *charge* la bibliothèque graphique avec #load "graphics.cma". On *ouvre* le module Graphics défini dans cette bibliothèque avec open Graphics.

    c'est pour dessiner des automates cellulaires
    Dans le style du jeu de la vie ? Si c'est le cas, j'en ai déjà fait, et je me souviens d'au moins deux choses : (1) la tentation (condamnable) de rédiger tout en itératif et (2) l'importance de bien optimiser son code pour avoir un résultat rapide même pour de gros univers (en particulier, il faut bien choisir le type de données utilisé pour représenter les cellules).

    Cordialement,
    Cacophrène

  5. #5
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Il faut surtout faire, en respectant bien les espaces...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    open_graph " 333x666";;
    Pour info, il n'est pas nécessaire d'ouvrir la bibliothèque. Si tu fais ainsi, alors il faut ajouter graphics__ (2 underscores '_') devant TOUS noms du module, y compris les noms de champs d'enregistrement, les types, etc... L'ouvrir n'est donc qu'une commodité.

    Pour ce qui est de wait_next_event, c'est pas obligatoire : ça c'est uniquement lorsque tu veux interagir avec la fenêtre. C'est donc pas la première chose que l'on fait...

  6. #6
    Membre éprouvé
    Avatar de Cacophrene
    Homme Profil pro
    Biologiste
    Inscrit en
    Janvier 2009
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Biologiste

    Informations forums :
    Inscription : Janvier 2009
    Messages : 535
    Points : 1 125
    Points
    1 125
    Par défaut
    Salut !

    Pour ce qui est de wait_next_event, c'est pas obligatoire : ça c'est uniquement lorsque tu veux interagir avec la fenêtre. C'est donc pas la première chose que l'on fait...
    Quand j'utilisais Windows, c'était le seul moyen pour ne pas voir la fenêtre disparaître dès la fin de l'exécution (par ex. en attendant que l'on appuie sur une touche ou qu'on clique sur la fenêtre). Ça a peut-être changé, mais je n'en sais rien, car je n'utilise plus Windows et Graphics ne me sert plus beaucoup.

    Cordialement,
    Cacophrène

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    À mon avis, tu es trop habitué aux différents problèmes de Vista et tu te caches l'erreur : tu ne sais pas bien utiliser le module Graphics, que ce soit de Caml Light ou d'OCaml.
    Nan puisque je fais exactement la même chose sur les pc du lycée qui ont xp et ça marche très bien. Surtout que s'il y avait un problème de syntaxe/d'ouverture de librairie, je pense que caml aurait gueulé...
    Merci pour vos réponses en tout cas là je suis en tp (héhé) mais j'essayerais wait_next_event dès que je serais chez moi.
    Je vois le truc d'ailleurs (c'est la même chose dans les autres languages) mais là je suis en mode intéractif je sais pas comment ça se passe.... Et comme je l'ai déjà dit, ça marche bien sur les pc xp du lycée sans devoir appeler wait_next_event. Bref je vous tiens au courant.
    Merci.

Discussions similaires

  1. Imprimer le graphique en caml-light
    Par Cramer dans le forum Caml
    Réponses: 5
    Dernier message: 21/11/2009, 15h21
  2. [Caml Light] Librairie 'graphics" et Linux
    Par paf le chiot dans le forum Caml
    Réponses: 11
    Dernier message: 16/03/2007, 18h16
  3. Spécifier une nouvelle librairie graphique/jeu
    Par Montaigne dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 20/06/2005, 18h59
  4. Librairies graphiques que choisir pour la portabilité ?
    Par SamRay1024 dans le forum OpenGL
    Réponses: 8
    Dernier message: 03/02/2005, 17h22
  5. Utiliser une librairie graphique
    Par Troopers dans le forum Linux
    Réponses: 6
    Dernier message: 22/08/2003, 11h22

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