Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    janvier 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : janvier 2006
    Messages : 124
    Points : 61
    Points
    61

    Par défaut projet mais avec quelles bibliotheques ?

    bonjour,

    Je suis confirmé en programmation web et débute en c++. Devant le nombre de biliothèques graphique de c++, je suis un peu perdu pour choisir laquelle ou lesquelles utiliser pour le projet suivant que j'ai déjà réalisé en javascript avec les framework mootools et raphael mais que je souhaite porter dans un langage compilé pour des questions de rapidité.
    J'ai besoin :
    - d'un container visible de taille fixe qui contient le fond et les objets (si le fond est plus grand, seul la partie situé dans le container est visible)
    - d'un fond d'écran composé de lignes, point, cercle... (graphisme vectoriel)
    - des objets vectoriels (texte, cercle, triangle) se déplaçant sur les lignes
    - les objets seront 'clickables'

    Je voudrais avant tout pouvoir zoomer/dézoomer le fond et tous les objets simultanément sans perte de qualité (c'est pourquoi je n'utilise pas d'images bitmap mais des dessins vectoriels).

    Peut-on faire cela avec SDL, Qt ou autre chose ?
    Que pouvez-vous me conseiller sinon comme bibliothèque pour réaliser ce projet ?

    en vous remerciant,
    Christophe

  2. #2
    Expert Confirmé Sénior

    Homme Profil pro Pierre
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 181
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 2 181
    Points : 5 050
    Points
    5 050

    Par défaut

    SDL te permet de gérer des rectangles. Par exemple, il te faudra créer le code pour la gestion des clics, de la sélection des objets visuels.
    Qt est plus adapté pour faire une interface réelle, mais demande beaucoup d'apprentissage.

    Personnellement, la seule fois où j'ai géré de l'interface en C++, c'était un tetris avec la SDL et j'en ai eu pour deux heures, mais je n'avais pas besoin de la souris, donc c'était plus simple. (j'ai aussi fais de la 3D, mais sans vraie interface: affichage et controle automatique de la scène)

    J'ai fais pas mal d'interface en java, par contre, et là-bas, swing est un petit bonheur. (c'est d'ailleurs swing qui me fait faire du java, ces temps-ci).

    Je ne connais pas assez autres libs. j'ai entendu dire beaucoup de bien de SFML comme successeur C++ de la SDL (qui est en C). J'ai utilisé glut pour fenetrer de l'opengl, mais ce n'est pas trop adapté à ton problème, je pense.

    Si tu as du temps, lance toi sur SDL ou SFML, ca ne devrait pas être trop difficile, et l'apprentissage en vaut le coup.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • La plus sotte des questions est celle qu'on ne pose pas.

    Pour faire des graphes, essayez yEd.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    janvier 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : janvier 2006
    Messages : 124
    Points : 61
    Points
    61

    Par défaut sfml

    Merci pour ta réponse.
    Je vais jeter un oeil à SFML qui m'a l'air pas trop mal.
    Tu dis que les interfaces homme/machine en java sont faciles avec swing, penses-tu qu'il faille mieux que je développe mon projet en java ? car il y aura beaucoup de clic sur chaque objet (une quinzaine environ) qui sont eux-memes découpés en environ 10 objets (objets 'texte clickable' et 'objet graphique clickable'). Par contre au niveau objet graphique, c'est facile en java ?
    Tu parles aussi de Qt, en quoi cela serait mieux par rapport à SFML ? (bien que je préfèrerais une librairie open source même si ce n'est pas une obligation)

  4. #4
    Inactif


    Homme Profil pro Guillaume Belz
    Biochimiste
    Inscrit en
    novembre 2008
    Messages
    5 317
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume Belz
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Biochimiste
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2008
    Messages : 5 317
    Points : 18 047
    Points
    18 047

    Par défaut

    Bonsoir

    Sauf si tu fais des choses un peu complexe (et afficher une 15aine d'objets n'en fait pas partie), ton interface en java sera fluide aussi.
    Niveau difficulté d'apprentissage, à mon avis, C++/Qt ou java/swing, ça sera globalement pareil (2 gros framework contenant beaucoup de choses). A priori, l'équivalent de swing dans Qt, c'est le module QtGraphics (regarde par exemple ça : Diagram Scene Example)
    Pour terminer, Qt et la SFML sont tous deux open source

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    janvier 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : janvier 2006
    Messages : 124
    Points : 61
    Points
    61

    Par défaut

    Merci bien pour cette réponse.
    Le lien que tu donnes pour Qt est vraiment intéressant.
    Je vais creuser tout ça.

    Penses-tu que Qt est plus puissant que SFML pour la partie graphique ?
    Par exemple, joindre 2 objets se déplaçant par une ligne (j'ai vu dans le lien que Qt pouvait faire ça facilement mais SFML ???) ou faire un drag d'un objet ?

    bonne journée
    Christophe

  6. #6
    Expert Confirmé Sénior

    Homme Profil pro Emmanuel Deloget
    Développeur informatique
    Inscrit en
    septembre 2007
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Nom : Homme Emmanuel Deloget
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2007
    Messages : 1 894
    Points : 4 448
    Points
    4 448

    Par défaut

    Qt offre la possibilité de jouer avec des objets vectoriel (encore qu'il n'y ait pas, à ma connaissance, de librairie Qt spécifique - je peux toutefois me tromper).

    Dans le domaine du libre, la librairie la plus utilisée reste Cairo (page web: http://www.cairographics.org/). Cette librairie est utilisée dans de nombreux navigateurs web, ainsi que dans le logiciel Inskape et bien d'autres.

    Cairo propose un binding C++ nommé cairomm (http://www.cairographics.org/cairomm/), tout aussi libre que son ainé.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    janvier 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : janvier 2006
    Messages : 124
    Points : 61
    Points
    61

    Par défaut

    Merci !!
    Cairo a l'air d'être une bonne librairie graphique vectoriel.

    Je suppose que la gestion des évênements souris (click, mouseover...) se gère avec les librairies plus communes (SFML ou Qt) mais j'avoue que je m'interroge comment interfacer tout ça. J'en suis qu'au début des tutoriaux de base et c'est assez déroutant...

    Bon je retourne à mes tutoriels. Vous m'avez bien éclairci tout ça

    à bientôt et merci

  8. #8
    Membre Expert
    Inscrit en
    avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : avril 2010
    Messages : 1 495
    Points : 2 226
    Points
    2 226

    Par défaut

    Salut,

    Citation Envoyé par Emmanuel Deloget Voir le message
    Dans le domaine du libre, la librairie la plus utilisée reste Cairo (page web: http://www.cairographics.org/). Cette librairie est utilisée dans de nombreux navigateurs web, ainsi que dans le logiciel Inskape et bien d'autres.

    Cairo propose un binding C++ nommé cairomm (http://www.cairographics.org/cairomm/), tout aussi libre que son ainé.
    +1 pour cairo, cependant Inkscape a sa propre bibliothèque de rendu, livarot...

    Sinon y'a aussi agg, très impressionnant par sa rapidité... mais maintenant que cairo est mature, ça ne vaut peut être plus la peine... ???

    Enfin, il y a wxWidjets et son extension wxSVG... pour marier le tout...

  9. #9
    Expert Confirmé Sénior

    Homme Profil pro Emmanuel Deloget
    Développeur informatique
    Inscrit en
    septembre 2007
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Nom : Homme Emmanuel Deloget
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2007
    Messages : 1 894
    Points : 4 448
    Points
    4 448

    Par défaut

    Citation Envoyé par minnesota Voir le message
    Salut,

    +1 pour cairo, cependant Inkscape a sa propre bibliothèque de rendu, livarot...
    Etrange. Inkscape a pourtant bien un dépendance sur Cairo.

    Quoi qu'il en soit, j'ai regardé vite fait le code de livarot et deux nouvelles intéressantes :

    1) le code est écrit complètement en C++ (pas regardé le design, et j'ai un doute sur sa propreté après avoir vu un fichier dans lequel il y a une quinzaine de fonctions nommées QuickScan, Scan, ...).

    2) les commentaires sont souvent en Français, ce qui sera un argument de poids pour les non-anglophone (le code est quand même en franglais, option pas trop de Français).
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  10. #10
    Membre Expert
    Inscrit en
    avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : avril 2010
    Messages : 1 495
    Points : 2 226
    Points
    2 226

    Par défaut

    Oui oui, cairo est utilisé, mais pas pour le rendu... si je me souviens bien, c'est pour les exports en png, pdf, entre autres... en tout cas, une migration est prévue... ça c'est sûr... donc je pense qu'il vaut mieux investir sur cairo et sa descendance...

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •