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

AWT/Swing Java Discussion :

Pinceau pour des degradés


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Points : 90
    Points
    90
    Par défaut Pinceau pour des degradés
    Bonjour,

    je cherche a adapter le pinceau pour pouvoir avec des lignes en dégradés comme le montre l'image si dessous:

    (agrandi 20 fois ^^)
    ou un équivalent...

    j'ai essayé d'adapter BasicStroke, en vain...
    Auriez vous une idée de comment procéder?

    Merci d'avance.

  2. #2
    Membre régulier Avatar de kerinel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 107
    Points
    107
    Par défaut
    Salut,
    ceci devrait t'aider. mais je ne pense pas qu'il s'applique sur les lignes. Il faudra probablement faire un rectangle.

    Bon code.
    kerinel

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par kerinel Voir le message
    Salut,
    ceci devrait t'aider. mais je ne pense pas qu'il s'applique sur les lignes. Il faudra probablement faire un rectangle.

    Bon code.
    kerinel
    Bonjour,

    J'ai effectivement jeté un oeil sur GradientPaint. Malheureusement, il em faudrait vraiment dessiner des traits (et pas forcement horizontaux et verticaux).

    Je vais essayer de faire un système conssistant a dessiner des lignes parrallèles de plus en plus transparantes...
    j'ai peux que ce soit lourd (car le dessin se fait dans un paintComponent).

    Avec vous d'autres idées?
    Pensez vous que ma solution est 'lourde' pour chaque rafraichissements?

  4. #4
    Membre régulier Avatar de kerinel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 107
    Points
    107
    Par défaut
    Si tu dessines une série de lignes les une à cotés des autres, je ne vois pas la différence avec un rectangle ou un polygone que tu pourrais remplir avec ton gradient. Une ligne épaisse c'est un rectangle.
    Si ta ligne a pour coordonnée (x1;y1) (x2;y2) tu dessines un polygone dont les cotés sont (x1-5;y1+5) (x1+5,y1-5) (x2+5;y2-5)(x2-5;y2+5) et tu le remplis avec ton dégradé. Ton polygone fera (dans ce cas) seulement 10 pixels d'épaisseur (à voir avec ton gradient si il est plus large ou moins large).
    Il y aura surement des conditions à tester en fonction de la pente pour voir si il faut faire +5 ou -5 sur les abscisse ou les ordonnées ou bien éventuellement rien du tout (En fait pour arranger l'extrémité de ta ligne). Si tu veux que cela se fonde dans la couleur de fond : getBackground() pour l'un des deux arguments de ton GradientPaint.

    Bon code,
    kerinel

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Points : 90
    Points
    90
    Par défaut
    Yes, ca marche pour des lignes horizontales et verticales.

    Par contre, pour des diagonales, je vois pas comment faire

  6. #6
    Membre régulier Avatar de kerinel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 107
    Points
    107
    Par défaut
    Ben déjà montre comment tu as fait pour les horizontales et les verticales

    Bon code,
    kerinel

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Points : 90
    Points
    90
    Par défaut
    Salutations,

    a default d'avoir trouvé de solutions existantes, j'ai codé même un système de dégradé.

    J'utilise le principe que lorsque je dessine une ligne, je dessine toujours (avec une boucle) des lignes parallèles sur 3 pixels des deux côtés de la ligne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		//dessin de la zone
    		g2d.drawPolyline(zoneX, zoneY, zoneX.length);
    		for(int i=1; i<zone3DX.length+1; i++){
    			g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f - i/4f));			
    			g2d.drawPolyline(zone3D1X[i-1], zone3D1Y[i-1], zone3D1X[i-1].length);		
    		}
    avec zoneX et zoneY respectivement des tableaux de coordonnées en x et en y;
    et zone3D1X et zone3D1X les tableaux des coordonnées en x et y de l'effet en question.

    Pour simplifier l'exemple ici, j'ai donc mit les points dans des tableaux, et l'effet n'est dessiné que d'un côté des traits.

    Ainsi, ici, l'effet est appliqué pour tout genre de formes.

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

Discussions similaires

  1. Sed command pour des pathname ?
    Par fidififouille dans le forum Linux
    Réponses: 10
    Dernier message: 23/12/2010, 12h28
  2. Réponses: 8
    Dernier message: 19/04/2005, 12h04
  3. [Logiciel]Cherche graphisme pour des interfaces visuelles
    Par smyley dans le forum Autres Logiciels
    Réponses: 9
    Dernier message: 14/11/2004, 02h13
  4. package ambiguïté pour des classes de même nom
    Par soad dans le forum Langage
    Réponses: 2
    Dernier message: 10/06/2004, 19h25

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