Salut tous les developpeurs,
Je vais vous representer un petit problémes sur :
L'algorithme de bresenham (pour une ligne) permet de donnez les coordonnées succissives pour représenter un ligne su l'écran, Cet algoritme est concus pour le 1er et 5émé octant, mais on peut le généralisé pour les autres octants, J'ai arrivé le généraliser pour le 2émé et le 6éme Octants.
Mais j'arrive pas à le faire pour 3,4,7 et 8éme octant.
Voila la fonction C, pour cet algorithme :
Quel qu'un peut m'aider!!!
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 void bresLINE(point &a,point &b) { int p; point tmp; if(a.x>b.x) { tmp = b; b = a; a = tmp; } int deltax = b.x - a.x; int deltay = b.y - a.y; tmp.x = a.x; tmp.y = a.y; if (a.y<=b.y) { if (deltax>= deltay) // pour le 1er et 5émé octant { p = (2*deltay) - deltax; for (int i=0; i<=deltax ; i++) { cout<<"("<<tmp.x<<" , "<<tmp.y<<" )\n"; tmp.x +=1; if (p<0) { p += (2*deltay); } else { p += 2*(deltay - deltax); tmp.y += 1; } } } ////////////////////////////////////////////////////////////////// else // pour le 2émé et 6émé octant { p = (2*deltax) - deltay; for (int i=0; i<=deltay ; i++) { cout<<"("<<tmp.x<<" , "<<tmp.y<<" )\n"; tmp.y +=1; if (p<0) { p += (2*deltax); } else { p += 2*(deltax - deltay); tmp.x += 1; } } } } }
Merci
Partager