Tracage de ligne dans NSView

CoreCore Membre
22:32 modifié dans API AppKit #1
Bonjour

J'ai constaté que j'obtiens des lignes plus nette quand je demande un rectangle de hauteur un pixel :

[NSBezierPath fillRect:rectangle];


par rapport à  quand je demande une ligne avec :

NSPoint deb = NSMakePoint (x1,y1);<br />NSPoint fin = NSMakePoint (x2,y2);<br />[NSBezierPath strokeLineFromPoint:deb toPoint:fin];


Pourtant l'epaisseur de la ligne est bien 1 pixel

Si quelqu'un peut me trouver une explication je suis preneur !!

Réponses

  • mpergandmpergand Membre
    janvier 2005 modifié #2
    Il faut spécifier les coordonnées en demi point: x1+0.5f
    ou interdire antialiasing

    http://www.cocoadev.com/index.pl?NSBezierPath
  • VeillardVeillard Membre
    22:32 modifié #3
    Tu as essayé :

    [aPath setLineWidth: 1];
    
  • Eddy58Eddy58 Membre
    janvier 2005 modifié #4
    Il faut donner des demi-pixels pour éviter d'avoir des pâtés. Pour dessiner un simple point : :)

    <br />NSPoint originePoint;<br />[NSBezierPath strokeLineFromPoint:NSMakePoint(originePoint.x+0.5,originePoint.y) toPoint:NSMakePoint(originePoint.x+0.5,originePoint.y+0.5)];<br />
    

    Tu peux ensuite appliquer ceci pour dessiner tout les points et droites que tu veux.
  • CoreCore Membre
    22:32 modifié #5
    Merci bien !!

    A favouille > Oui j'avais essayé le setLineWidth à  1 pixel 
Connectez-vous ou Inscrivez-vous pour répondre.