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 :

Lisser une GradientPaint


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut Lisser une GradientPaint
    Bonjour tout le monde.

    Mon problème vient du fait que mes dégradés sont moche.
    Je voudrai bien savoir si il y a un moyen de ne pas avoir cette effet de pallier de couleur dans mes GradientPaint et RadialGradientPaint.
    Sachant que RenderingHints n'est pas une réponse à mon problème.

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    C'est quoi que tu appelles palier de couleur au juste ? Une copie d'écran peut-être ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Nom : Capture d’écran 2014-10-29 à 15.29.04.png
Affichages : 470
Taille : 365,4 Ko

    Les ronds blancs ce sont des RadialGradientPaint et ont peut voir que le dégradé n'est pas propre.
    Je peut te montrer le résultat avec un simple GradientPaint mais c'est exactement la même chose.

    Nom : Capture d’écran 2014-10-29 à 15.45.07.png
Affichages : 479
Taille : 20,6 Ko

    Voila au cas ou.
    Et la la code est vraiment basique: dans mon Panel je créé un rectangle que j'affiche après avoir setPaint mon Graphics2D avec mon GradientPaint.
    C'est tout.

  4. #4
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Ca me semble bizarre cette effet visuel. Il me semble pas que ca faisait ca avant.
    Je me demande si ca viens pas de la mise a jour JAVA que j'ai du faire depuis Yosemite.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Les composantes des couleurs en RGB étant des entiers dans un intervalle un nombre fini de valeurs (0 à 256), on peut s'attendre à ce qu'on ne puisse pas avoir une infinité de couleurs et donc parfois des effets de palier comme tu dis. Je pense que dans ton cas, c'est accentué par ton écran (la profondeur).

    Parce que moi j'obtiens pour le dégradé linéraire quelque chose de très convenable (en tout cas, sans l'effet d'aplat que tu montres). Pour le radial c'est un peu moins bien, et ça doit venir de l'algo de la classe, mais je ne suis pas sûr qu'on puisse faire mieux. Faudrait chercher sur le net des algorithmes et refaire sa propre implémentation.

    Voilà ce que j'obtiens personnellement avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    public class TestGradient {
     
    	public static void main(String[] args) {
     
    		JFrame frame = new JFrame("test");
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		frame.setContentPane(createPanel());
    		//frame.setContentPane(createRPanel());
     
    		frame.setSize(200, 200);
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
     
     
    	}
     
    	private static Container createPanel() {
    		JPanel panel = new JPanel() {
     
    			protected void paintComponent(java.awt.Graphics g) {
    				super.paintComponent(g);
     
    				Graphics2D g2d = (Graphics2D)g;
     
    				g2d.setPaint(createGradientPaint());
     
    				g2d.fillRect(0, 0, getWidth(), getHeight());
     
     
    			};
     
    			protected Paint createGradientPaint() {
    				return new GradientPaint(0, 0, Color.GREEN, 0, getHeight(), Color.BLUE);
    			}
     
     
    		};
    		panel.setBackground(Color.BLACK);
    		return panel;
    	}
     
    	private static Container createRPanel() {
    		JPanel panel = new JPanel() {
     
    			protected void paintComponent(java.awt.Graphics g) {
    				super.paintComponent(g);
     
    				Graphics2D g2d = (Graphics2D)g;
     
    				double size = Math.min(getHeight(),getWidth())/2;
    				Rectangle2D bounds = new Rectangle2D.Double((getWidth()-size)/2, (getHeight()-size)/2, size, size); 
     
    				g2d.setPaint(createGradientPaint(bounds));
     
    				g2d.fill(bounds);
     
     
    			};
     
    			protected Paint createGradientPaint(Rectangle2D bounds) {
    				return new RadialGradientPaint(bounds,
    						new float[]{0.0f,1f},
    						new Color[]{Color.WHITE,Color.BLACK},CycleMethod.NO_CYCLE);
    			}
     
    		};
    		panel.setBackground(Color.BLACK);
    		return panel;
    	}
     
    }
    Nom : Gradient.PNG
Affichages : 494
Taille : 13,9 Ko

    Nom : RadialGradient.PNG
Affichages : 461
Taille : 83,6 Ko
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Ok donc c'est sur il y a un problème.
    Ca vient surement de Yosemite parce que le rendu que tu as chez toi c'est celui que j'avais avant l'installation.
    Du coup si quelqu'un a une solution autre que la réinstallation de Mavericks je suis preneur.

    Merci de ton aide Joel.

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

Discussions similaires

  1. Lisser une courbe d'Hystérésis
    Par topgunus dans le forum Mathématiques
    Réponses: 12
    Dernier message: 05/03/2010, 19h00
  2. neat video - lisser une video
    Par alaindel dans le forum Vidéo
    Réponses: 0
    Dernier message: 29/08/2008, 16h18
  3. Lisser une courbe
    Par thomcat dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 21/07/2008, 14h19
  4. [LabView 8.5][Débutant] Lisser une courbe
    Par yoann23 dans le forum LabVIEW
    Réponses: 2
    Dernier message: 18/03/2008, 10h57
  5. Lisser une image en temps réel
    Par Montaigne dans le forum Multimédia
    Réponses: 2
    Dernier message: 14/09/2006, 01h25

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