wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 3

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Création de composants spécifiques
» Création d'un composant pour dessiner des courbes
Conversation : Création d'un composant pour dessiner des courbes
30-09-2008 13:02:48  Création d'un composant pour dessiner des courbes #1
cfdev (Membre)
Lieu: Alpes de Haut Provence
Inscrit le : 08-11-2007
Messages: 127
Snippets: 4
Tutoriels: 0
Site web
Hors ligne
Bonjour à tous,

Je souhaiterai créer un composant permettant de dessiner des courbes facilement... car ce qu'il y a sur le net ne répond pas à mes attentes.

Pour avoir une base solide de départ je sollicite votre avis :

je pensais partir d'un wxPanel avec une wxDC qui permet pas mal de truc pour dessiner...qu'en pensez-vous ?

merci d'avance :)
----------
ça n'inspire personne =(  ...

Dernière modification par cfdev (01-10-2008 08:53:45)


GNU Linux Power !
Slacker
01-10-2008 09:27:12  Re: Création d'un composant pour dessiner des courbes #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1383
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut

cfdev:
ça n'inspire personne =(  ...
On attend surtout le résultat pour être inspirés :lol:

Ça me parait une bonne piste de départ.
Jettes un coup d'oeil aux sources de wxArt2D, si tu as besoin d'inspiration.

Après, tout dépend des fonctionnalités que tu veux donner à ton composant.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
01-10-2008 10:16:52  Re: Création d'un composant pour dessiner des courbes #3
cfdev (Membre)
Lieu: Alpes de Haut Provence
Inscrit le : 08-11-2007
Messages: 127
Snippets: 4
Tutoriels: 0
Site web
Hors ligne
lol, je posais surtout la question pour le choix de base pour pas que je me lance sur une mauvaise piste.

Je voudrais réaliser un composant qui colle assez bien à première vu avec celui LA

mais quelque chose d'assez simple sans pour autant être moche!
fast use and realy good ;)

GNU Linux Power !
Slacker
01-10-2008 10:45:56  Re: Création d'un composant pour dessiner des courbes #4
gbdivers (Membre)
Inscrit le : 05-03-2008
Messages: 92
Snippets: 2
Tutoriels: 0
Hors ligne
en fait, il faudrait une classe dérivée de wxDC, qui permettrait de dessiner des courbes, en dégradé, en transparence...

en gros, il te faut wxGraphicsContext :)
01-10-2008 11:04:02  Re: Création d'un composant pour dessiner des courbes #5
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1383
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Il n'est pas du tout nécessaire d'utiliser wxGraphicsContext pour un composant comme celui-ci (à moins de vouloir appliquer de la transparence sur la courbe elle-même).

Le dégradé est dessinné sur le fond du contrôle, puis la(les) courbe(s) par dessus.

Mais à moins de vouloir un tracé semi-transparent (afin d'éventuellement apercevoir les courbes qui pourraient passer dessous), pas besoin de gdi+.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
01-10-2008 11:31:23  Re: Création d'un composant pour dessiner des courbes #6
gbdivers (Membre)
Inscrit le : 05-03-2008
Messages: 92
Snippets: 2
Tutoriels: 0
Hors ligne
l'interet est surtout que wxGraphicsContext peut tracer des courbes plus complexe que wxDC (courbes de Bezier, rectangle avec bords arrondis, arc de cercle, ellipse, anti-aliasing). Il est également possible d'appliquer une transformation quelconque (translation, rotation, homothétie)

Au final, l'image du lien peut etre dessinée avec wxGC
01-10-2008 13:23:15  Re: Création d'un composant pour dessiner des courbes #7
cfdev (Membre)
Lieu: Alpes de Haut Provence
Inscrit le : 08-11-2007
Messages: 127
Snippets: 4
Tutoriels: 0
Site web
Hors ligne
j'ai regardé un peu wxGraphicsContext  mais il semble avoir un dépendance avec ce gdi+ ? no
je ne souhaite pas forcément faire de la transparence mais peu être un fond dégradé pour habiller oui.

GNU Linux Power !
Slacker
01-10-2008 13:27:27  Re: Création d'un composant pour dessiner des courbes #8
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1383
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Si tu n'as besoin que d'un fond dégradé, tu peux le faire avec un simple wxDC :
- wxDC::GradientFillConcentric
- wxDC::GradientFillLinear

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
01-10-2008 13:39:02  Re: Création d'un composant pour dessiner des courbes #9
cfdev (Membre)
Lieu: Alpes de Haut Provence
Inscrit le : 08-11-2007
Messages: 127
Snippets: 4
Tutoriels: 0
Site web
Hors ligne
super Xav merci je pense m'orienter vers wxDC.
comme je souhaite faire de l'affichage plus ou moins temps réel, j'ai besoin de quelques chose de rapide.

++
----------
Re,

je me suis inspiré du wiki pour apprendre à dessiner :)
http:/wiki.wxwidgets.org/Drawing_on_a_panel_with_a_DC

c'est bien mais pas efficace si je doit rafraichir mon dessin.
ma question est comment faire un double buffering avec wxWidgets?
j'ai tenter dans un wxMemoryDC lié avec un wxBitmap mais j'ai tjs ce balayage en bois...
:(

Dernière modification par cfdev (03-10-2008 09:27:41)


GNU Linux Power !
Slacker
03-10-2008 09:58:07  Re: Création d'un composant pour dessiner des courbes #10
gbdivers (Membre)
Inscrit le : 05-03-2008
Messages: 92
Snippets: 2
Tutoriels: 0
Hors ligne
wx a tout prévu !

Tu peux utiliser les classes wxBufferedDC et wxBufferedPaintDC par ca

Une doc tres bien et tres claire pour le dessin avec wx (mais en anglais) : http:/www.informit.com/articles/article … p;seqNum=1


EDIT: au fait, pour eviter le clignotement, il faut aussi redéfinir la fonction d'affichage du fond :

Code wxWidgets:

BEGIN_EVENT_TABLE(MyNael, wxPanel)
    EVT_ERASE_BACKGROUND(MyPanel::OnEraseBackground)
    ...
END_EVENT_TABLE()
 
MyPanel::MyPanel(wxWindows* parent)
: wxPanel(parent, wxID_ANY)
{
    SetBackgroundStyle(wxBG_STYLE_CUSTOM);
}
 
void MyPanel::OnEraseBackground(wxEraseEvent&)
{
}

Dernière modification par gbdivers (03-10-2008 13:35:05)

06-10-2008 08:58:32  Re: Création d'un composant pour dessiner des courbes #11
cfdev (Membre)
Lieu: Alpes de Haut Provence
Inscrit le : 08-11-2007
Messages: 127
Snippets: 4
Tutoriels: 0
Site web
Hors ligne
ha je me disai bien qu'il me manquait quelques chose...
le background..

bon nikel le double buffer au top et le déragé aussi ! merci à tous
Je poursuis pour la gestion des courbes.

++
----------
Bonjour à tous,

Pour me familiariser avec les outils de dessin, j'ai décider de créer un composant moins dur dans un premier temps.
Voilou ce que ca donne wxFastGauge à voir sur mon site perso.

J'invite tout le monde que ça intéresse à l'utiliser sans modération! :D
Pour les courbes je pars déjà avec une bonne base ;)
++

Dernière modification par cfdev (20-10-2008 16:36:35)


GNU Linux Power !
Slacker
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Création de composants spécifiques
» Création d'un composant pour dessiner des courbes