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

Ada Discussion :

Ada, 2D & 3D


Sujet :

Ada

  1. #1
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut Ada, 2D & 3D
    Bonjour,

    Je voudrais créer des fenêtre en interface graphiques et pouvoir insérer à l'intérieur(ou en codant) des formes 2D &3D.
    Par exemple des figures géometrique en 2D comme en 3D et aussi pouvoir graphiquement reproduire certaines parties de l'anatomie humaine voir même un corps entier.Tout en donnant la possibilité a l'utilisatteur d'interagir avec le programme en fenêtre comme en console.

    En ce moment je me renseigne sur les fonctions,exemples de codes en gtkada et autres outils libres qui me serais utlie pour un tel projet.
    Cependant malgrès les nombreux paquets en gtkada et mes recherches je n'ai pas encore trouvé...

    Si vous avez des idées n'hésitez pas

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour codezero1

    Tu devrais trouver quelque part le programme testgtk qui produis un un ensemble d'exemple des possibilités de Gtkada.
    Dans ton ordinateur tu peux chercher avec la commande find /usr -iname "testgtk*" ou sur le net.

  3. #3
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    J'ai cherché en commande, en fenêtre mais il n'apparait nulle part.

    Sur le net il y a ça : http://beru.univ-brest.fr/~singhoff/...tkAda/testgtk/

    C'est a ce fichier testgtk.adb que tu faisais allusion ?

  4. #4
    Membre actif

    Homme Profil pro
    Mathématicien et développeur
    Inscrit en
    Mars 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Mathématicien et développeur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 132
    Points : 241
    Points
    241
    Billets dans le blog
    3
    Par défaut OpenGL + GLOBE_3D
    Regarde comment intégrer un cadre OpenGL dans GtkAda - sauf il y a qqch dans une des démos: cherche les mots-clés "opengl" ou "teapot"...
    Tu peux utiliser la couche GLOBE_3D pour faciliter la représentation d'objets 3D.
    Il y a notamment moyen d'afficher avec GLOBE_3D des modèles VRML - en googlant "vrml" et "anatomy" il a l'air d'y avoir de la matière...

  5. #5
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par Zerte Voir le message
    Regarde comment intégrer un cadre OpenGL dans GtkAda - sauf il y a qqch dans une des démos: cherche les mots-clés "opengl" ou "teapot"...
    Tu peux utiliser la couche GLOBE_3D pour faciliter la représentation d'objets 3D.
    Il y a notamment moyen d'afficher avec GLOBE_3D des modèles VRML - en googlant "vrml" et "anatomy" il a l'air d'y avoir de la matière...
    Merci, j'ai installé les extensions(lib) pour la prise en charge de opengl avec gtkada. Donc l'intégration de opengl dans gtkada devrait fonctionner mais lorsque j'essai la compilation classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    > gnatmake <main-file> `gtkada-config`
    j'obtiens bien les fichiers .o et .ali mais pas d'éxécutable .

    J'ai pas mal googler opengl and gtkada window(entre autres ) mais sans succés..

    Il y a cette commande pour compiler , est-ce que la composition est la même en Ada ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o myprogram myprogram.c -lglut lGLU -lGL
    que j'ai trouvé ici : http://cs.lmu.edu/~ray/notes/opengl/

    Bref, je ne sais pas comment compiler des fichiers avec opengl (et encore moins avec GLOBE_3D...mais super demos )
    A moins que le problème vienne d'ailleurs??

    Aussi pour infos les fichiers que j'essai de compiler sont de /testgtk/opengl ici : http://beru.univ-brest.fr/~singhoff/...estgtk/opengl/ Je n'ai pas obtenu d'éxécutable avec trackball.

  6. #6
    Membre actif

    Homme Profil pro
    Mathématicien et développeur
    Inscrit en
    Mars 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Mathématicien et développeur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 132
    Points : 241
    Points
    241
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par codezero1 Voir le message
    Il y a cette commande pour compiler , est-ce que la composition est la même en Ada ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o myprogram myprogram.c -lglut lGLU -lGL
    que j'ai trouvé ici : http://cs.lmu.edu/~ray/notes/opengl/
    Avec GNAT (un des compilateurs Ada) tu as en gros deux moyens:

  7. #7
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Merci,

    A présent je cherche un simple programme opengl à compiler( j'avais trouvé les testgtk/opengl mais il y en a plusieurs, aucun makefile , bref pas clair ) et je ferais un retour ensuite.

  8. #8
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    J'ai trouvé ce >site pour des sources libres en ada+opengl.

    Voici le fichier "opengl-glfw.gpr" compilable (indiqué dans le makefile du site):
    (Un fichier programme est surement plus abordable, mais à part 'testgtk', je n'ai pas trouvé d'autres exemples.)

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    with "opengl_shared";
    with "opengl";
     
    library project OpenGL.Glfw is
       for Languages use ("ada");
     
       for Library_Name use "GlfwAda";
       for Library_Kind use OpenGL_Shared'Library_Kind;
     
     
       type GLFW_Version_Type is ("2", "3");
       GLFW_Version : GLFW_Version_Type := external ("GLFW_Version");
     
       GLFW_Sources := ("src/glfw");
     
       -- Most tests need a GLFW window. An abstraction layer is provided
       -- so that the test work with GLFW 2 and 3. Test project can reference
       -- this variable in order to include the appropriate sources for
       -- the defined GLFW version.
       Shared_Test_Sources := ("tests/shared");
     
       GLFW_Lib := "";
       case GLFW_Version is
          when "2" =>
             GLFW_Sources := GLFW_Sources & "src/glfw/v2";
             Shared_Test_Sources := Shared_Test_Sources & "tests/shared/glfw2_backend";
             GLFW_Lib := "-lglfw";
          when "3" =>
             GLFW_Sources := GLFW_Sources & "src/glfw/v3";
             Shared_Test_Sources := Shared_Test_Sources & "tests/shared/glfw3_backend";
             GLFW_Lib := "-lglfw3";
       end case;
     
       for Source_Dirs use GLFW_Sources;
       for Object_Dir use "obj";
       for Library_Dir use "lib";
     
       package Ide renames OpenGL_Shared.Ide;
       package Builder renames OpenGL_Shared.Builder;
       package Compiler renames OpenGL_Shared.Compiler;
     
       package Linker is
          case OpenGL_Shared.Windowing_System is
             when "quartz" =>
                for Linker_Options use (GLFW_Lib, "-Wl,-framework,Cocoa,-framework,IOKit");
             when "windows" =>
                for Linker_Options use (GLFW_Lib, "-lwinmm", "-lgdi32");
             when "x11" =>
    		      -- -lX11 is already set in opengl.gpr
                for Linker_Options use (GLFW_Lib, "-pthread", "-lm", "-lXcursor", "-lXxf86vm",
                                        "-lXrandr", "-lXinerama", "-lXi", "-ldl");
          end case;
       end Linker;
    end OpenGL.Glfw;
    Ce code utilise la bibliothéque "glfw" pour la gestion du cadre de fenetre, je voudrais utiliser gtkada à la place(par défault avec opengl sur ma version linux). Qu'en penses tu ?

  9. #9
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Avec Gtk ada et opengl un fichier projet a cette composition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with "gtkglada";
      project Example is
         for Object_Dir use "obj";
         for Exec_Dir use ".";
         for Main use ("example");
      end Example;
    Plus précisement :

    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
    --  (generated by dh_ada_library during package build)
    --  This project file is designed to help build applications that use gtkglada.
    --  Here is an example of how to use this project file:
    --
    --  with "gtkglada";
    --  project Example is
    --     for Object_Dir use "obj";
    --     for Exec_Dir use ".";
    --     for Main use ("example");
    --  end Example;
     
    with "gtkada";
    library project gtkglada is
       for Library_Name use "gtkglada";
       for Library_Kind use "dynamic";
       for Library_Dir use "/usr/lib/x86_64-linux-gnu/";
       for Source_Dirs use ("/usr/share/ada/adainclude/gtkglada");
       for Library_ALI_Dir use "/usr/lib/x86_64-linux-gnu/ada/adalib/gtkglada";
       for Externally_Built use "True";
       package Linker is
          for Linker_Options use ("-lgtkgl-2.0", "-lGLU", "-lGL", "-lgtk-x11-2.0",
                                  "-lgdk-x11-2.0", "-latk-1.0", "-lgio-2.0",
                                  "-lpangoft2-1.0", "-lpangocairo-1.0",
                                  "-lgdk_pixbuf-2.0", "-lcairo", "-lpango-1.0",
                                  "-lfontconfig", "-lgobject-2.0", "-lglib-2.0",
                                  "-lfreetype");
       end Linker;
    end gtkglada;
    J'essai de modifier le fichier de mon post précédent, cette fois avec "gtkada" pour la gestion du cadre au lieu de "glfw" .

  10. #10
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut Est-ce que quelqu'un utilise GTK avec Cairo ?
    En ce moment j'utilise juste GTK+Cairo .

    Impossible de dessiner une simple figure gémoétrique tel un carré ou un cercle .

    Le code suivant se compile mais je ne sais pas quoi utiliser ensuite et dans quel ordre :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
     
    WITH Gtk.Main ;          USE Gtk.Main ;
    WITH Gtk.Window ;        USE Gtk.Window ;
    WITH Gtk.Enums ;         USE Gtk.Enums ;
    WITH Gtk.Button ;        USE Gtk.Button ;
    WITH Gtk.Alignment ;     USE Gtk.Alignment ;
    WITH Gtk.Box ;           USE Gtk.Box ;
    WITH Gtk.Gentry;         USE Gtk.Gentry;
    WITH Gtk.Widget ;        USE Gtk.Widget ; 
    with Gtk.Handlers;
     
    with Gtk.Drawing_Area; 	use Gtk.Drawing_Area;
     
     
    PROCEDURE dessine_avec_cairo IS
     
    -----------------------
       -- VARIABLES --    | 
    ----------------------------------------------------------
       win : Gtk_window ;
     
       Btn1, Btn2 ,Btn3  : Gtk_Button ;
     
       alignG, alignM ,alignD  : Gtk_Alignment ;
     
       Boite  : Gtk_VBox ;
     
       Boutons :  Gtk_HBox ;
     
       saisie : Gtk_Entry ;
     
       zone_dessin : Gtk_Drawing_Area ;
     
    ----------------------------------------------------------
    --Instanciation package(s) for connexion
    ----------------------------------------------------------
     
       PACKAGE P_Callback IS NEW Gtk.Handlers.Callback(Gtk_Widget_Record);
     
       USE P_Callback ; 
     
    ----------------------------------------------------------
    --  Handlers (or callbacks)   |
    ----------------------------------------------------------
     
       procedure Stop_Program(Emetteur : access Gtk_Widget_Record'class)
       is
     
          PRAGMA Unreferenced (Emetteur);
     
       begin
     
          Main_Quit;
     
       end Stop_Program ;
     
    -------------------------------------------------
    BEGIN
     
       Init ; 
     
    ----------------
       -- NEW --   |
    -------------------------------------------------
     
       Gtk_New(zone_dessin);
     
       Gtk_New(win);   
     
       Gtk_New(saisie);
     
       Gtk_New(Btn1, "Bouton 1") ; 
       Gtk_New(Btn2, "Bouton 2") ; 
       Gtk_New(Btn3, "Bouton 3") ; 
     
       Gtk_New(alignG,0.0,1.0,1.0,1.0);
       Gtk_New(alignM,0.5,1.0,1.0,1.0);
       Gtk_New(alignD,1.0,1.0,1.0,1.0);
     
      Gtk_New_VBox
      (Boite, homogeneous => false, Spacing => 0) ;
     
      Gtk_New_HBox
      (Boutons, homogeneous => false, Spacing => 0) ;
     
    ---------------------------------
    --  Add                    |
    ---------------------------------
     
       alignG.add(Btn1) ;
       alignM.add(Btn2) ;
       alignD.add(Btn3) ;
     
       win.Add(Boite);
     
    ------------------------------------------
    --  Connect                |
    ------------------------------------------
     
    Connect(Widget => win ,
              Name => "destroy" ,
                Cb => Stop_Program'access);  
     
     
    ------------------------------------------
    --  Design Window          |
    ------------------------------------------
     
        Size
          (Drawing_Area => zone_dessin ,
           Width => 100 ,
           Height => 100);
     
        Pack_Start
          (In_Box => Boite ,
           Child  => zone_dessin ,
           Expand => true ,
           Fill => true );
     
       Pack_Start
          (In_Box => Boite ,
           Child  => saisie ,
           Expand => false );
     
       Pack_Start
          (In_Box => Boite , 
           Child => Boutons ,
           Expand => true ,
           Fill => true );
     
     
       Pack_Start
          (In_Box => Boutons , 
           Child => alignG ,
           Expand => true ,
           Fill => true );
     
       Pack_Start
          (In_Box => Boutons , 
           Child => alignM ,
           Expand => true ,
           Fill => true );
     
       Pack_Start
          (In_Box => Boutons , 
           Child => alignD ,
           Expand => true ,
           Fill => true );
     
     
     
       win.Set_Default_Size(500,500) ;   
     
       win.set_position(Win_Pos_Mouse) ; 
     
       win.set_opacity(1.0) ;
     
       win.Show_all ; 
       Main ; 
     
    END dessine_avec_cairo ;

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/10/2004, 10h47
  2. [Ada] Gnat
    Par kilinette dans le forum Ada
    Réponses: 4
    Dernier message: 04/10/2004, 09h58

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