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

Free Pascal Discussion :

Alternative à l'unité Graph sous Linux


Sujet :

Free Pascal

  1. #1
    Membre à l'essai
    Homme Profil pro
    Corrèze
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Corrèze
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Alternative à l'unité Graph sous Linux
    Bonjour à toutes et à tous,

    J'ai appris Pascal en 1982, MT+ et aussi UCSD, puis Turbo comme tout le monde. Voilà que l'envie me prend de programmer à nouveau, je ne dirais pas développer.

    Je suis sous Linux Mint (Ubuntu KDE) et aussi Mageia 3.

    Je tente de reprendre certaines de mes sources anciens et bien sur dedans il y a uses graph et comme indiqué en plusieurs endroits des ces forums, c'est pas terrible avec FP, l'un des fils conclut : C'est clair, pas de graph sous Ubuntu. Alors je viens un peu aux nouvelles.

    Est-ce effectivement râpé pour graph, quelle alternative ? Sinon existe-il un autre Pascal libre qui gère cela ?

    Je compile en ligne de commande.

    J'ai fait une recherche dans le forum avec le mot graph et certains posts sont de 2010, voire de 2005, je sais que ce n'est pas une investigation poussées, mais ça devrait aller plus vite avec votre aide.

    Merci et bonne journée de pluie.
    Guy

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Ne connaissant pas Linux, je ne saurais pas vous répondre au sujet de l'unité Graph.

    En revanche je viens de tomber sur un exemple que j'ai trouvé intéressant. C'est un programme qui fait des dessins dans une fenêtre, et qui tient dans un seul fichier.

    C'est un programme Lazarus. J'imagine (sans en être entièrement certain) qu'il est compilable sous Linux.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    je ne sais pas si ça peut aider mais à l'époque de Kylix j'avais fait 2 ou 3 tests

    avec XWindow
    http://tothpaul.free.fr/sources.php?kylix.directx

    OpenGL
    http://tothpaul.free.fr/sources.php?kylix.kopengl

    Accès direct à la carte graphique
    http://tothpaul.free.fr/sources.php?kylix.kcyber

    en fait avec svgalib il doit être possible de travailler plus ou moins comme sous DOS
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 235
    Points : 506
    Points
    506
    Par défaut
    Pour remplacer l'unité Graph sous Linux il y a une semi-solution. Je parle de semi-solution car les entrées/sorties par Write(Ln)/Read(Ln) ne sont pas gérées alors qu'il me semble que c'était le cas avec turbo pascal.

    La semi-solution est de remplacer Graph par ptcGraph.

    Pour utiliser le clavier il faut ajouter un 'uses ptcCrt'.

    J'ai trouvé ces infos ici mais, je vous préviens, c'est du russe. Je n'en parle pas un mot mais avec google traduction on comprend un peu mieux...

    Un petit exemple (tiré de l'article en russe et adapté pour utiliser ptcCrt) :
    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
     
    program demo16bitcolor;
    uses ptcGraph, ptcCrt;
     
    var
      Driver: SmallInt;
      Mode : SmallInt;
      x, y, i, Color : Integer;
     
    begin
      DetectGraph(Driver, Mode);
     
      InitGraph(Driver, Mode, '');
      Color:=0;
      y:=0;
      for i:=0 to 63 do
      begin
        for x:=0 to 1023 do
        begin
          SetColor(Color);
          Line(x, y, x, y+10);
          Inc(Color);
        end ;
        y:=y+12;
      end;
     
      repeat
      until KeyPressed;
     
      CloseGraph;
     end.

  5. #5
    Membre averti
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Points : 365
    Points
    365
    Par défaut
    Bonjour,
    j'ai essayé et voila le message :
    testgraph.pas(3,6) Fatal: Can't find unit ptcGraph used by demo16bitcolor
    Fatal: Compilation aborted

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 235
    Points : 506
    Points
    506
    Par défaut
    Je viens de refaire un essai avec FPC 2.6.2 32 bits. Aucun problème.

    Quelle est ta version de FPC ? As tu bien les fichier ptcgraph.ppu et ptcgraph.o dans ton répertoire d'installation de FPC (C:\FPC\2.6.2\units\i386-win32\graph sous win, /usr/lib/fpc/2.6.2/units/i386-linux/graph/ sous linux) ?

  7. #7
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 43
    Points : 114
    Points
    114
    Par défaut
    Bonsoir à tous,

    J'ai testé ptc également (ptc uniquement et ptcgraph+ptcmouse). J'ai trouvé ces unités très intéressantes. C'est une bonne avancée et on peut faire de bons graphiques, de façon simple.

    Comme Batyann#11, aucun problème non plus (version FPC 2.6.4 32bits, sous ubuntu).

    @Joreveur : Outre les emplacements de ce fichier dans l'un des répertoires cités par Batyann#11, regarde aussi si ton IDE comprend comment y accéder. Il faut spécifier ce chemin dans les options de ton IDE. Pour trouver le chemin exact, trouve-le d'abord dans l'arborescence de /usr. Et dans le cas, où comme moi, tu utilise l'IDE fourni avec freepascal (celle après avoir tapé 'fp' dans une console) :
    - Dans l'IDE : clique sur help/about pour connaître la version de freepascal (2.6.2, 2.6.4, ...).
    - Explore l'arborescence de /usr. Ptcgraph est soit dans quelque-chose comme /usr/lib/fpc/2.6.4/units/i386/graph/ ou soit dans quelque-chose comme /usr/local/lib/fpc/2.6.4/units/i386/graph/.
    - Dans l'IDE : va dans Options => Directories => Units , puis tape à l'intérieur le bon chemin et sans erreur (moi, j'ai tapé /usr/lib/fpc/2.6.4/units/i386/* -le '*' indique que le compilateur va rechercher dans tous les sous-dossiers de .../units/i386/-).

    Sinon, je reviens sur ptc. Voilà mon retour d'expérience :
    Avec ptcgraph+ptcmouse : On peut utiliser les routines de l'unité Graph avec de très bonnes résolutions (800x640 ; 1280x1024 ; ...) et ça marche bien. Les couleurs sont limitées à 16bits (65536 couleurs, ce qui est déjà pas mal), impossible de forcer avec des couleurs à 24 ou 32 bits.

    Avec ptc : il faut comprendre que l'on fait des graphiques en écrivant dans la mémoire (d'abord dans la ram, puis transfert dans la mémoire vidéo), il n'y a donc pas de routines graphiques établies. Pour utiliser cette unité, j'ai trouvé les informations sur ces liens :
    - https://github.com/graemeg/freepasca...docs/INTRO.txt (l'auteur Nikolay Nikolov explique -en anglais- le béaba de l'utilisation de son unité ptc).
    - http://ptcpas.sourceforge.net/api-re...c/index-4.html (documentation sur ptc)

    On peut, avec ptc, faire des graphiques avec le format de couleurs et la résolution que l'on veut. Par contre, en testant un remplissage de l'écran pixel par pixel en 16bits (avec ptcgraph puis avec ptc), il y a une différence de rapidité énorme :
    - avec ptcgraph, en utilisant putpixel, c'est fait en moins d'une seconde (et malgré un update à chaque fois par putpixel).
    - avec ptc, en écrivant, transférant, et rafraichissant (update) chaque pixel de l'écran, on a de quoi faire une sieste pendant au moins une heure...
    J'essaie de comprendre d'où vient cette différence.

    Sinon, la fonction IPTCConsole.update(area) qui permettrait (si j'ai bien compris) "d'updater" seulement une partie de la console, et non toute la console comme le fait IPTCConsole.Update, entraîne chez moi une erreur système. Un bogue ou alors j'ai mal compris.

    Sur ce, bonne nuit et à bientôt.

Discussions similaires

  1. [Free Pascal] Unité Graph sous Windows 7 x64
    Par Transgarp dans le forum Free Pascal
    Réponses: 9
    Dernier message: 03/12/2012, 13h36
  2. [Free Pascal] Unité Graph sous Mac OS.X
    Par KIORPR dans le forum Free Pascal
    Réponses: 0
    Dernier message: 01/08/2012, 10h43
  3. [Free Pascal] Unité Graph sous FreePascal et/ou Lightweight-IDE 0.9.4+
    Par KIORPR dans le forum Free Pascal
    Réponses: 4
    Dernier message: 27/07/2012, 10h35
  4. Réponses: 5
    Dernier message: 27/03/2012, 10h43
  5. [FreePascal] Unité Graph sous Linux
    Par fire.stone dans le forum Free Pascal
    Réponses: 2
    Dernier message: 18/05/2005, 10h13

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