begin process at 2012 05 28 12:47:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

l'algorithme de droite de Bresenham


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

l'algorithme de droite de Bresenham

mardi 31 août 2004 à 19:58:30 | l'algorithme de droite de Bresenham

douggyfresh


Je suis Douggy. je voudrais tracer une droite en mode graphique. j'ai essaye avec l'algorithme basant sur l'equation des droites affines(avec y=mx+p), ceci ne les trace pas trop bien dans toutes les situations. Donc, j'ai eu recours a un tuteur de Dore Shaun ou il m'a propose et explique l'algorithme de bresenham. j'ai compris l'idee. puis je l'ai mise en pratique ca ne marche pas comme attendu. Donc, je voudrais que quelqu'un m'explique avec un code source a l'appui, l'effet de cet algorithme. Je voudrais franchir cet etape en vue de realiser d'autre tracés comme les triangles, le cube. Car cet algorithme se revele utile. je veux donc le comprendre afin de le mettre en pratique a ma facon. S.V.P. Aidez-moi donc!
mardi 31 août 2004 à 20:44:08 | Re : l'algorithme de droite de Bresenham

dletozeun

Je ne connais pas l'algorithme de bresenham mais j'ai fais moi meme un algorithme de tracé de lignes en c qui utilise la fonction putpixel() d'allegro qui permet d'allumer un pixel au coordonnnées données ( donc a toi d'adapter apres):


void MyLine(int xdep, int ydep, int xfin, int yfin)
{
float a=0;
int temp=0;
int cste=0;

unsigned int dy;
unsigned int dx;

dx=abs(xfin-xdep);
dy=abs(yfin-ydep);
if(dx>=dy && dx!=0 && dy!=0)
{
if(xdep>xfin)
{
temp=xdep;
xdep=xfin;
xfin=temp;

temp=ydep;
ydep=yfin;
yfin=temp;
}
a=((float)(yfin-ydep)/(xfin-xdep));

for(int x=0;x<dx+1;x++)
{
putpixel(buffer,x+xdep,ydep+(x*a)+cste,makecol(255,255,255));
}
}

if(dx<dy && dx!=0 && dy!=0)
{
if(ydep>yfin)
{
temp=ydep;
ydep=yfin;
yfin=temp;

temp=xdep;
xdep=xfin;
xfin=temp;
}
a=((float)(xfin-xdep)/(yfin-ydep));

for(int y=0;y<dy+1;y++)
{
putpixel(buffer,xdep+(y*a)+cste,y+ydep,makecol(255,255,255));
}
}

if(dx==0)
{
if(ydep>yfin)
{
temp=ydep;
ydep=yfin;
yfin=temp;
}
for(int y=ydep;y<yfin+1;y++)
putpixel(buffer,xdep,y,makecol(255,255,255));
}
if(dy==0)
{
if(xdep>xfin)
{
temp=xdep;
xdep=xfin;
xfin=temp;
}
for(int x=xdep;x<xfin+1;x++)
putpixel(buffer,x,ydep,makecol(255,255,255));
}
}


Il y asans doute mieux...mais code fonctionne dans toutes les situations...
si ca t'interesse n'hesite pas si t'as un probleme! ;)
samedi 4 septembre 2004 à 22:30:36 | Re : l'algorithme de droite de Bresenham

dletozeun

PUTAIN !!! LA MOINDRE DES CHOSES A DIRE C'EST MERCI!!
dimanche 19 avril 2009 à 23:28:39 | Re : l'algorithme de droite de Bresenham


Cette discussion est classée dans : explique, algorithme, droite, pratique, bresenham


Répondre à ce message

Sujets en rapport avec ce message

Algorithme de compression STAR amélioré [ par hi_vivie2 ] Bonjour à tous,Je dois réaliser de manière urgente l'implémentation en java de l'algorithme de compression STAR amélioré appliqué aux images en mouvem Algorithme de compression STAR amélioré [ par hi_vivie2 ] Bonjour à tous,Je dois réaliser de manière urgente l'implémentation en java de l'algorithme de compression STAR amélioré appliqué aux images en mouvem un programme à creer [ par yoyo ] je dois creer un programme permettant d trouver les nombres premiers.l'algorithme est donné, et il utilise des tableaux dont les cases sont remplies p Jeu DirectX [ par Mickylord ] Bonjour , je vien de commencer a faire mon premier jeu en DirectX , mais j'ai un petit problème : J'aimerai que quand j'appui sur la touche droite ( p Qui sait l'algorithme pour calculer les racines? [ par TMT ] Aidez-moi! Recherche bouquin sur les somposants graphiques [ par Freeskieur ] Bonjour,Je recherche un livre en français qui explique comment utiliser les composants graphiques sous borland c++ builder.C'est a dire qui regroupe t conversion de la partie fractionnaire en base n [ par Alucard ] J'ai vu qu'il y avait beaucoup d'algorithme de la partie entière (int) d'un nombre en n'importe quel base mais je voulais savoir si quelqu'un avait un espaces à droite [ par CHENRY ] en VC++ 6.0, je lis des datas dans une base de données SQL Server 2000. Dans la base de données, comme les champs string de la table ont une longueur Algorithme de mélange [ par C2S ] bonjour, j'aimerais connaitre un algorithme de mélange d'un tableau... (aléatoire) ... c'est pour simuler une fonction "mélanger" relative a un paquet Petit Programme [ par spreadof ] Bonjour , je suis debutant de chez debutant , je n'ai que 14 ans , et j'aimerai savoir comment faire pour mon petit programme ... Je vous explique : 1


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,028 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales