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

Android Discussion :

Anti-aliasing côte à côte


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 168
    Par défaut Anti-aliasing côte à côte
    Bonjour,

    assez étrangement je ne trouve rien sur le sujet. Je soupçonne chercher avec de mauvais termes. M'enfin bon, voilà mon problème :

    J'ai un canvas sur lequel je dessine des objets tangents avec l'anti-aliasing activé. Le problème est que lorsque mes formes son blanche et le font est noir, là où les formes rentrent en contact, il y a du gris et non du blanc comme souhaité.

    Ce problème a-t-il un nom ? Quelqu'un connait-il une solution à ce problème ? ... mise à part désactivé l'anti-aliasing. Bien qu'avec les dernières résolutions d'écrans cela pourrait passablement simplifier la chose.

    Merci bien

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu pourrais

    1) nous mettre une capture d'écran de ton problème
    2) nous montrer comment tu fais ton affichage.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 168
    Par défaut
    voilà pour l'image :



    le problème se situe au contact entre l'arc blanc et gris clair. Et pour ce qui est du code :

    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
    protected void onDraw(Canvas canvas) {
    	super.onDraw(canvas);
     
    	// ARC GRIS CLAIR
    	fillingPaint.setColor(Color.LTGRAY);
    	canvas.drawArc(rectangles[0], getStartAngle(x), getSweepAngle(y), true, fillingPaint);
    	canvas.drawArc(rectangles[0], getStartAngle(x), getSweepAngle(z), true, fillingPaint);
    	canvas.drawOval(rectangles[2], clearPaint);
     
    	// ARC BLANC
    	fillingPaint.setColor(Color.WHITE);
    	canvas.drawArc(rectangles[2], getStartAngle(X), getSweepAngle(Y), true, fillingPaint);
    	fillingPaint.setColor(getResources().getColor(android.R.color.holo_red_light));
    	canvas.drawArc(rectangles[2], getAngle(Z) - CURSOR_WIDTH, 2 * CURSOR_WIDTH, true, fillingPaint);
    	canvas.drawOval(rectangles[5], clearPaint);
     
    	[...]
    }

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    As-tu utilisé la méthode setAntiAlias(boolean) sur tes objets Paint ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 168
    Par défaut
    oui, j'ai les lignes suivant dans mon constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PorterDuffXfermode clearMode = new PorterDuffXfermode(Mode.CLEAR);
     
    clearPaint.setAntiAlias(true);
    clearPaint.setXfermode(clearMode);
     
    fillingPaint.setAntiAlias(true);
    fillingPaint.setStyle(Style.FILL);

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Je suppose que ton problème, c'est le gris foncé entre l'arc blanc et l'arc gris clair?

    Si oui, c'est parce que les deux formes ne se collent pas assez. L'idéal serait que la zone blanche déborde sous la zone grise pour éviter ce soucis. Par exemple en attribuant un contour à la forme.

Discussions similaires

  1. [DirectX9] Anti-aliasing + gestion caméra
    Par SteelBox dans le forum DirectX
    Réponses: 6
    Dernier message: 21/07/2005, 00h56
  2. Anti aliasing qui ne fonctionne pas
    Par Deus Ex Makina dans le forum OpenGL
    Réponses: 3
    Dernier message: 27/04/2005, 09h57
  3. Filtres Anti-aliasing et TBitmap
    Par Sub0 dans le forum Langage
    Réponses: 24
    Dernier message: 15/04/2005, 21h12
  4. filtre anti-aliasing
    Par MO GV dans le forum MFC
    Réponses: 14
    Dernier message: 04/03/2005, 19h21
  5. Anti-aliasing
    Par Cazman dans le forum OpenGL
    Réponses: 16
    Dernier message: 27/04/2004, 08h30

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