avec un pen de largeur >1, on obtient des lignes diagonales
plus larges que les lignes verticales ou horizontales. Visiblement
le pen est un carré.
comment obtenir un tracé correct ?
j'ai étudié ExtCreatePen associé à un path, qui pourrait apporter une
solution mais
la doc msdn n'est pas très claire à propos des mutiples flags possibles.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Aurelien REGAT-BARREL
"Stephane Legras-Decussy" a écrit dans le message de news: 425147ef$0$18947$
bonjour,
j'ai un problème de tracé de lignes en win32.
avec un pen de largeur >1, on obtient des lignes diagonales plus larges que les lignes verticales ou horizontales. Visiblement le pen est un carré.
comment obtenir un tracé correct ?
Si j'ai bien compris tu veux faire de l'anti-aliasing. Tu peux faire ça avec GDI+: http://msdn.microsoft.com/library/en-us/gdicpp/GDIPlus/aboutGDIPlus/linescurvesandshapes/antialiasingwithlinesandcurves.asp
-- Aurélien REGAT-BARREL
"Stephane Legras-Decussy" <admin@dtc.fr> a écrit dans le message de news:
425147ef$0$18947$636a15ce@news.free.fr...
bonjour,
j'ai un problème de tracé de lignes en win32.
avec un pen de largeur >1, on obtient des lignes diagonales
plus larges que les lignes verticales ou horizontales. Visiblement
le pen est un carré.
comment obtenir un tracé correct ?
Si j'ai bien compris tu veux faire de l'anti-aliasing. Tu peux faire ça avec
GDI+:
http://msdn.microsoft.com/library/en-us/gdicpp/GDIPlus/aboutGDIPlus/linescurvesandshapes/antialiasingwithlinesandcurves.asp
"Stephane Legras-Decussy" a écrit dans le message de news: 425147ef$0$18947$
bonjour,
j'ai un problème de tracé de lignes en win32.
avec un pen de largeur >1, on obtient des lignes diagonales plus larges que les lignes verticales ou horizontales. Visiblement le pen est un carré.
comment obtenir un tracé correct ?
Si j'ai bien compris tu veux faire de l'anti-aliasing. Tu peux faire ça avec GDI+: http://msdn.microsoft.com/library/en-us/gdicpp/GDIPlus/aboutGDIPlus/linescurvesandshapes/antialiasingwithlinesandcurves.asp
-- Aurélien REGAT-BARREL
Stephane Legras-Decussy
Aurelien REGAT-BARREL a écrit dans le message : 42518cf8$0$16513$
Si j'ai bien compris tu veux faire de l'anti-aliasing
non c'est pas ça. le probleme est tout bête, voir l'image :
http://cjoint.com/?efde3SsvJC
ce tracé est fait de deux LineTo avec un même pen de largeur 5, hors la ligne verticale est clairement plus mince que la diagonale !
comment corriger ça ?
Aurelien REGAT-BARREL <nospam.aregatba@yahoo.fr.invalid> a écrit dans le
message : 42518cf8$0$16513$636a15ce@news.free.fr...
Si j'ai bien compris tu veux faire de l'anti-aliasing
non c'est pas ça. le probleme est tout bête, voir l'image :
http://cjoint.com/?efde3SsvJC
ce tracé est fait de deux LineTo avec un même pen de largeur 5, hors
la ligne verticale est clairement plus mince que la diagonale !
Aurélien REGAT-BARREL a écrit dans le message : 4252632f$0$12952$
En faisant de l'anti-aliasing...
hum... à mon sens, c'est plutot un probleme de pen carré (forcement la diagonale d'un carré est plus grande que le coté) au lieu d'un pen rond...
pour en avoir le coeur net, je vais coder mon propre LineTo avec un motif rond.
merci pour réponse.
Cyrille Szymanski
On 2005-04-05, Stephane Legras-Decussy wrote:
Aurélien REGAT-BARREL a écrit dans le message : 4252632f$0$12952$
En faisant de l'anti-aliasing...
hum... à mon sens, c'est plutot un probleme de pen carré (forcement la diagonale d'un carré est plus grande que le coté) au lieu d'un pen rond...
Je viens de regarder l'image, c'est pas très net mais on dirait bien que l'empreinte est carrée. Essaie d'utiliser un rond plutôt que de recoder un lineto().
On 2005-04-05, Stephane Legras-Decussy <admin@dtc.fr> wrote:
Aurélien REGAT-BARREL <nospam-aregatba@yahoo.fr.invalid> a écrit dans le
message : 4252632f$0$12952$626a14ce@news.free.fr...
En faisant de l'anti-aliasing...
hum... à mon sens, c'est plutot un probleme
de pen carré (forcement la diagonale d'un carré est plus grande que le coté)
au lieu d'un pen rond...
Je viens de regarder l'image, c'est pas très net mais on dirait bien que
l'empreinte est carrée. Essaie d'utiliser un rond plutôt que de recoder un
lineto().
Aurélien REGAT-BARREL a écrit dans le message : 4252632f$0$12952$
En faisant de l'anti-aliasing...
hum... à mon sens, c'est plutot un probleme de pen carré (forcement la diagonale d'un carré est plus grande que le coté) au lieu d'un pen rond...
Je viens de regarder l'image, c'est pas très net mais on dirait bien que l'empreinte est carrée. Essaie d'utiliser un rond plutôt que de recoder un lineto().
> hum... à mon sens, c'est plutot un probleme de pen carré (forcement la diagonale d'un carré est plus grande que le coté) au lieu d'un pen rond...
Je ne comprends pas ce que tu veux dire par pen rond et carré. Un pen n'as pas de forme, mais simplement une couleur, une largeur et un style. D'après ce que je comprends tu veux essayer de dessiner des pixels ronds, mais un pixel est comme il est, et c'est pas avec du code que tu vas changer ça. L'antialiasing consiste à "mélanger" plusieurs couleurs dans le même pixel, pour en quelque sorte partager ce pixel entre plusieurs dessins (dessiner des "portions" de pixels). Dans le lien que je t'ai donné, une image (zoomée) montre la différence entre une diagonale avec et sans anti-aliasing. Fait ton propre test, ça prend 10 minutes, ça peut te faire économiser 2 jours de développements inutiles.
-- Aurélien REGAT-BARREL
> hum... à mon sens, c'est plutot un probleme
de pen carré (forcement la diagonale d'un carré est plus grande que le
coté)
au lieu d'un pen rond...
Je ne comprends pas ce que tu veux dire par pen rond et carré. Un pen n'as
pas de forme, mais simplement une couleur, une largeur et un style. D'après
ce que je comprends tu veux essayer de dessiner des pixels ronds, mais un
pixel est comme il est, et c'est pas avec du code que tu vas changer ça.
L'antialiasing consiste à "mélanger" plusieurs couleurs dans le même pixel,
pour en quelque sorte partager ce pixel entre plusieurs dessins (dessiner
des "portions" de pixels).
Dans le lien que je t'ai donné, une image (zoomée) montre la différence
entre une diagonale avec et sans anti-aliasing. Fait ton propre test, ça
prend 10 minutes, ça peut te faire économiser 2 jours de développements
inutiles.
> hum... à mon sens, c'est plutot un probleme de pen carré (forcement la diagonale d'un carré est plus grande que le coté) au lieu d'un pen rond...
Je ne comprends pas ce que tu veux dire par pen rond et carré. Un pen n'as pas de forme, mais simplement une couleur, une largeur et un style. D'après ce que je comprends tu veux essayer de dessiner des pixels ronds, mais un pixel est comme il est, et c'est pas avec du code que tu vas changer ça. L'antialiasing consiste à "mélanger" plusieurs couleurs dans le même pixel, pour en quelque sorte partager ce pixel entre plusieurs dessins (dessiner des "portions" de pixels). Dans le lien que je t'ai donné, une image (zoomée) montre la différence entre une diagonale avec et sans anti-aliasing. Fait ton propre test, ça prend 10 minutes, ça peut te faire économiser 2 jours de développements inutiles.