locked
Curseur graphique X-OR RRS feed

  • Question

  • Salut à tous.

     

    Je dois afficher un grand nombre de courbes dans une fenêtre.

    L'utilisateur doit pouvoir sélectionner une partie d'une des courbes de manière interactive avec la souris.

    Il faut donc que je mette en évidence, de manière rapide, une courbe ou une partie de courbe.

    Je connais une méthode simple, il suffit de dessiner une première fois sur la courbe en faisant une opération X-OR; un second dessin identique au premier, toujours avec un X-OR, redonnera le dessin initial.

    On peut ainsi simuler le déplacement d'un curseur graphique sur un dessin.

    Suis-je clair ?

     

    Je ne vois pas de moyen de faire cette opération dans VS.NET.

    Avez-vous une solution ?

     

    Merci,

    Alain.

     

    jeudi 26 juin 2008 13:58

Réponses

  • Es-ce que c'est un graphique que votre application génère? Si oui, vous pourriez utilisé le composant ZedGraph qui possède cette fonctionnalité. En fait, vous pourriez même regarder la source!
    vendredi 27 juin 2008 15:49

Toutes les réponses

  • J'ai découvert la méthode DrawReversibleLine mais ce n'est pas LA solution à mon problème.

    N'y aurait-til pas la possibilité de faire des calques lorsqu'on dessine, un peu comme dans PhotoShop ?

     

    A.

     

    vendredi 27 juin 2008 09:57
  • Bonjour,

     

    XOR n'est pas supporté par GDI+ (et donc .NET), voici cependant un code source qui utilise le GDI classique :

    http://www.codeproject.com/KB/GDI-plus/MixedRubberBandApp1.aspx?display=Print

     

    Cordialement

     

    vendredi 27 juin 2008 11:46
  • Merci our votre réponse utile.

     

    Malheureusement, la solution que vous proposez ne fonctionne bien que si on a une image figée et que seul le curseur est mobile.

     

    Dans mon cas, j'ai besoin d'un curseur mobile sur un fond qui change également, du moins en partie.

     

    Pour simplifier, je dirai que j'ai une partie de mon image de fond qui change et j'aimerai un curseur, tel que proposé dans la solution que vous me donnez, par dessus cet objet qui change.

     

    Je ne peux redessiner l'ensemble de l'image, puis le curseur par dessus car ce traitement serait trop lourd.

    Il n'y a qu'une petite partie de l'image qui change mais, sur cette partie, le système de curseur XOR ne marche pas.

     

    L'idéal serait des calques, comme dans PhotoShop: je mettrai mon image, avec une partie mobile, sur un calque et mon curseur sur un autre calque. Peut-être y-a-t-il un moyen de faire ça avec GDI+ ou GDI ?

    Il suffirait de faire mon dessin dans un objet graphique non affiché, faire mon curseur sur un autre et faire la somme.

    Le tout serait que cette somme se fasse en bas niveau (en langage machine) pour être suffisament rapide.

     

    Avez-vous un conseil ?

     

    Alain.

    vendredi 27 juin 2008 12:46
  • Es-ce que c'est un graphique que votre application génère? Si oui, vous pourriez utilisé le composant ZedGraph qui possède cette fonctionnalité. En fait, vous pourriez même regarder la source!
    vendredi 27 juin 2008 15:49
  • OK.

     

    J'ai deux pistes: ZedGrapg et les BufferedGraphics que je viens de découvrir.

    Malheureusement, il semble qu'il n'y ait pas de Calques en GDI+.

     

    Merci pour votre aide.

    Alain.

     

    lundi 30 juin 2008 08:29