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

2D Java Discussion :

drawString() vs draw(shape)


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut drawString() vs draw(shape)
    Bonjour,

    Afin de justifier un ou plusieurs mots sur une largeur donnée, j'utilise un GlyphVector pour augmenter l'espace entre chaque caratère via setGlyphPosition().
    Je transforme le résultat final en shape avec getOutline(), puis l'affiche avec draw(shape).
    Seulement, le résultat est médiocre en définition par rapport à drawString(), surtout avec des petites tailles 8-10-12
    Que puis-je faire pour corriger ?
    D'avance merci.

  2. #2
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Ceci semble améliorer un peu le rendu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g2.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,RenderingHints.VALUE_FRACTIONALMETRICS_ON);
    est-ce la meilleure méthode ?

  3. #3
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Ceci permets d'utiliser des nombre a virgule plutot que des entier pour les taille si je ne m'abuse... je ne pense pas que ceci va ameliorer quoi que ce soit (si ce n'est les espacement entre lettres eventuellement dans certains cas)

    T'as essayer de lisser le texte avec KEY_TEXT_ANTIALIASING ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    KEY_TEXT_ANTIALIASING ne s'applique pas au dessin d'une shape (ce me semble). En fait c'est probablement la shape en elle-même qui est assez grossière par rapport a ce que fait la fonction drawString().
    le problème doit certainement venir de GlyphVector.getOutline()

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Ca c'est sur que ca s'applique pas au Shape ... pour le dessin autres que les drawString il faut utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.setRenderingHintRenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
    Entres nous j'ai louper un morceau, ou je melange je pensais qu'il s'agissait d'un probleme avec le texte (drawString) et non la shape en elle meme

    Tu aurais un screenshot du problème ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Effectivement, j'avais positionné KEY_TEXT_ANTIALIASING mais pas KEY_ANTIALIASING.

Discussions similaires

  1. Texte DrawString en Shape
    Par dmfdmf dans le forum 2D
    Réponses: 2
    Dernier message: 07/03/2012, 20h35
  2. [Debutant] [Graphics2d] coordonnees d'un "shape"
    Par Javatator dans le forum 2D
    Réponses: 6
    Dernier message: 10/11/2004, 09h16
  3. MouseListener sur Shape !
    Par zigg dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 25/10/2004, 21h03
  4. Hierarchie complexe et commande Shape
    Par blackspine dans le forum Général VBA
    Réponses: 2
    Dernier message: 07/08/2004, 12h49
  5. Direct Draw et le 8 bit
    Par Freakazoid dans le forum DirectX
    Réponses: 7
    Dernier message: 15/08/2003, 17h49

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