Points et lignes avec antialias (lignes "lissées"/anticrènelées)

Description

Bonjour à tous, encore moi.

Bon je ne me souviens plus qu'est ce qui m'a motivé à faire cette source, en tout cas ça faisait longtemps que j'en avait envie mais je n'était jamais passé à l'action.
Alors voilà :
AntiAliasPoint > Place un point à des coordonées de type Single, donc avec décimales.
AntiAliasLine > Trace une ligne antialiasée, sa crénelure quoi, lissée. Le résultat n'est pas entièrement parfait mais ça le fait je trouve.

A noter que l'objet dans lequel vous dessinez la ligne ou le point doivent etre en ScaleMode=Pixel

Explications du fonctionnement :
La ligne antialiasée n'est qu'une ligne normale, où les points sont placés à des coordonées avec décimales (donc en utilisant AntiAliasPoint) (pour le tracage de la ligne je me suis servi d'un exemple de quelqu'un dont j'ai oublié le nom)
Les points antialiasés : en fait le point sera placé entre 4 pixels, et on calcule le pourcentage de l'aire du point dans chacun des 4 pixels (ce qui nous donne un coeff qui servira à appliquer la couleur sur les pixels déjà existants).
Pour résumer, je cite Vlad2i :
- On dessine un point a un emplacement (X,Y) défini par des nombres décimaux (pas entiers)
- On dessine donc au moins le double de la figure avec des pixels
- La somme des intensités points ainsi dessinnés = la somme du pixel normal

Source / Exemple :


Lancez le code, cliquez sur la picturebox et bougez votre souris en gardant le bouton gauche enfoncé.

Conclusion :


Je pense que je vais avoir le droit à pas mal de suggestions d'améliorations (c'est souvent le cas pour une source graphique), alors je les attend avec impatience ;-)

MadMatt

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.