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

Qt Discussion :

Tracé de lignes pointillées [2D/3D]


Sujet :

Qt

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Août 2010
    Messages : 6
    Par défaut Tracé de lignes pointillées
    Bonjour,

    j'ai un problème de performance de tracé de ligne pointillée avec Qwt, mais je pense qu'il s'applique aussi à Qt. En fait lorsque je zoome sur une courbe Qwt définie avec QPen() initialisé avec Qt::DashLine . Le canvas met énormément de temps à s'afficher. Parfois tellement de temps que je suis obligé de tuer l'application !

    J'ai trouvé un workaround pour le style Qt::DotLine ici :

    http://developer.qt.nokia.com/faq/an...ution_for_this

    Mais ça ne semble pas s'appliquer pour les lignes pointillées. Est-ce que quelqu'un a déjà eu ce problème ? Est-ce que vous auriez des idées qui me permettraient d'afficher des lignes pointillées en un temps raisonnable ?
    Merci d'avance,

    Jean-Charles

  2. #2
    Membre éprouvé
    Avatar de GreatTux
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 77
    Par défaut
    Bonjour Jean-Charles,

    Quelle version de Qt utilises-tu ?
    Il semble que quelque chose de similaire a été corrigé en 4.5.1:
    (http://qt.nokia.com/developer/changes/changes-4.5.1/)
    - QPainter
    ...
    * [246573] Fixed a very slow stroking of paths in the X11 paint engine.

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Par défaut
    Salut, et bienvenue sur le forum !

    J'ai pas mal utilisé Qwt, et je n'ai jamais eu ce problème. Peux tu nous donner un peu plus d'infos sur ton utilisation ? (version de Qt et de Qwt, OS, taille des données affichées).

    G.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Août 2010
    Messages : 6
    Par défaut
    Salut, merci pour vos réponses.

    Alors j'utilise Qt 4.5.2 et Qwt 5.2.0 sous windows XP. Je n'ai pas fait beaucoup de tests mais le problème apparait sur une courbe qui ne dispose que de quelques dizaines de milliers de points. C'est pas la mer à boire.

    Il est possible de reproduire le problème sur l'exemple "bode" de Qwt en changeant la variable ArraySize qui définit le nombre de points pour 20000 et le QPen utilisé pour l'une des courbes afin que son style soit Qt::DashLine. Ensuite il suffit d'opérer des zooms successifs sur la courbe avec de très petits rectangles de zoom. Au bout de 2 ou 3 zooms successifs, l'application met plusieurs minutes à afficher la courbe.

    J'ai aussi posté sur la mailing list de Qwt, pas de news pour le moment.

    Jean-Charles

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Par défaut
    En effet J'ai exactement la même config que toi, et le même problème! J'avais jamais du utilisé ce PenStyle.

    J'ai trouvé une solution pas trop compliquée, et sans perte visuelle. Il suffit de découper ta courbe en une centaine de courbe, et le repaint se passe bien.

    Je vais d'essayer sur l'exemple bode et ca marche. Si tu as besoin d'aide pour la réalisation, n'hésite pas.

    G.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Août 2010
    Messages : 6
    Par défaut
    Ok merci Gulish,

    j'ai eu une réponse de la liste de diffusion qui a dépassé mes espérances les plus folles. Il suffit de rajouter une option et ça n'a jamais été aussi rapide:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    p_itemCourbe->setPaintAttribute(QwtPlotCurve::ClipPolygons, true);
    C'est incroyable la différence de performance même sur les courbes qui ne sont pas pointillées. L'intégralité de la discussion est ici:

    http://thread.gmane.org/gmane.comp.g...t.general/2780

    Jean-Charles

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Par défaut
    En effet, ça marche pas mal. Finalement, comme je le pensais, c'était le repaint de toute la courbe qui était lourd. Ma solution de découpage entraînait le même résultat : restreindre la zone à repeindre.

    On en apprend tous les jours

    G.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ligne pointillée sur images
    Par Yjo dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 06/05/2007, 22h05
  2. Créer une ligne pointillée en ActionScript
    Par Rodrigue dans le forum Flash
    Réponses: 3
    Dernier message: 20/04/2007, 16h54
  3. [Java2D] Sacadage avec lignes pointillés.
    Par bob_survivals dans le forum 2D
    Réponses: 1
    Dernier message: 11/01/2007, 23h23
  4. [VCL][D6]Tracé de lignes ds un PaintBox
    Par fab56 dans le forum Delphi
    Réponses: 5
    Dernier message: 05/12/2006, 19h45
  5. tracé de ligne en pointillé
    Par pavlacki dans le forum Langage
    Réponses: 1
    Dernier message: 03/04/2006, 20h52

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