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

C# Discussion :

Librairie graphique 2d


Sujet :

C#

  1. #1
    Membre régulier Avatar de Onlava
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 112
    Points
    112
    Par défaut Librairie graphique 2d
    Bounjour,

    Je bosse actuellment sur une application qui doit permettre l'edition
    d'un espace 2d (ajouter/deplacer des cercles, rectangles, polygones etc..)

    Pour le moment j'utilise gdi+, et je me demandais si il existait une librairie vectorielle toute faite qui
    ferait de loin ce qu'on peut voir en flash (drag un rectangle par exemple, ou gérér les intersections).

    Ou est-ce que je dois coder ça moi-même en gdi?
    Serait-il plus judicieux d'utiliser directX dans ce cas?

    Merci pour vos conseils

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    utiliser DirectX ? Pour de la 2D, ca ne sera pas à mon avis plus facile que pour de la 3D...

    Maintenant, il existe des moteurs 2D gratuits.. tu peux toujours regarder de ce coté la...

    Sinon, faire une telle librairie... c'est pas forcement compliqué. Ca peut-etre
    "relativement" long suivant le nombre d'item que tu peux etre amené à créer.
    Mais si c'est juste des ronds, des rectangles, que tu voudras déplacer
    ou redimensionner..

    J'ai vu un article sur CodeProject.. tu devrais y trouver ton bonheur peut-etre.

    Disons que si tu te débrouilles un peu en C# et .Net, en 1 jours, tu dois pouvoir avoir quelques choses qui tourne à peu pres..

    (pour info, je viens de faire ce genre de bazar en 3 heures.. hier apres midi)
    (avec gestion du déplacement, de la selection active... notion de ligne reliant deux éléments...)

    Apres, si tu veux que les "objets" réagissent à des actions... il faudra compter un peu plus de temps...

    The Monz,Toulouse

    PS : Ah oui, je gère aussi le Z-Order dans mon code

  3. #3
    Membre régulier Avatar de Onlava
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 112
    Points
    112
    Par défaut
    Merci pour tes conseils theMonz31.
    Jai pas mal cherché sur le net sans rien trouver de convainquant.
    As-tu recontré des soucis de perfs avec gdi+?
    Quelle technique utilises-tu pour détecter le click utilisateur sur un sprite?
    J'ai commencé a écrire un Sprite Manager mais pfiu ça devient vite compliqué.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    gdi+ est le plus simple, mais niveau performance c'est vraiment nase
    si t'as pas 100 objets qui bouge en meme temps ca pourra ptete t'aller

    sinon directX j'ai deja essayé c'est faisable, bienqu'un peu plus complexe pour démarrer mais niveau perf, rien à voir (NB : sur DX9, directdraw est encore supporté mais non conseillé, les routines 2d ont été incluses dans direct3d)

    sinon pour directX y a un module XNA pour visual studio, pas encore testé mais ca fait un nouveau type de projet qui s'occuperait de gérer pas mal de truc et simplifierais donc l'initialisation, ca se trouve sur le site de microsoft ...

  5. #5
    Membre actif Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 273
    Points
    273
    Par défaut
    Tu peux également regarder du côté de SdlDotNet.

    C'est assez facile à utiliser, les formes basiques sont présentes, et tu peux intégrer une Surface SDL (zone d'affichage) dans une fenêtre WinForms assez facilement.

    Pour des tutoriaux sur SdlDotNet :
    - Tutorial 1 (qui seront un de ces 4 passés sur développez)
    - Tutorial 2
    - Site officiel

  6. #6
    Membre régulier Avatar de Onlava
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 112
    Points
    112
    Par défaut
    Merci! J'essaie ça de suite

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    voici quelques astuces pour la "detection de zone"

    En fait, j'ai crée une classe BaseShape.

    Dans cette classe, j'ai deux fonctions : une fonction Render(Graphics g)
    qui va faire le rendu en s'appuyant sur un objet Graphics qui provient de
    mon usercontrol qui sert de surface de management des mes dessins
    et une methode ClientRegion....

    Quand tu dessines en gdi+, tu peux utiliser l'objet GraphicsPath qui contient des methodes genre, AddEllipse, AddLine, etc... et ensuite, faire un Region =
    new Region(GraphicsPathAToi)...

    En faisant ainsi, ta region va correspondre aux "limites" ou à l'interieur des
    objets que tu auras ainsi dessiné dans ton graphicsPath

    Ensuite, quand l'utilisateur fait un click, c'est mon UserControl qui le recoit
    et je fais à ce moment la, un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Foreach(BaseShape sh in shapes)  // ou shapes = List<BaseShape>
    if(sh.GetclientRegion().Contains(MousePos))
    {
    Trouve
    }
    Donc, tu vois, c'est tres simple ensuite de gérer le Move, etc...
    (pour le move, je recupere les infos de position souris sur le MouseDown et je vérifie que le MouseDown est fait sur une region correspondant à un de mes objets (baseShape)... et si c'est le cas, à chaque MouseMove, je deplace
    l'objet du delta de déplacement et je demande à mon UserControl (celui qui embarque les BaseShape) de redessiner tout le monde (si tu ne redessines que celui qui a bougé, tu vas avoir de vilain effet...)

    Et voila

    Si tu as d'autres questions, n'hésites pas

    The Monz, Toulouse

  8. #8
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Neutron, bien que le developpement ait ete un peu abandonne c'est pas mal du tout

Discussions similaires

  1. recherche librairie graphique
    Par jollo dans le forum C
    Réponses: 6
    Dernier message: 03/10/2005, 21h39
  2. [SWT][Librairies graphiques]
    Par XristofGreek dans le forum SWT/JFace
    Réponses: 7
    Dernier message: 08/09/2005, 12h20
  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