gem-graph-client/resolu

60 lines
2.2 KiB
Plaintext

delta = 2 + 3 + 61 + 83 + 87 + 67 + 23
- 45 - 137 - 253 - 393 - 557 - 745
- 957 - 1193 - 1453 - 1737 - 2045
- 2377 - 2733 - 3113 - 3517 ---
------------------------------------------
côté dérivée_1 dérivée_2
c (1) (d1) (d2)
------------------------------------------
1 -4 - 72 = -76 -76 --100 = 24
3 -56 - -4 = -52 -52 - -76 = 24
5 -84 - -56 = -28 -28 - -52 = 24
7 -88 - -84 = -4 -4 - -28 = 24
9 -68 - -88 = 20 20 - -4 = 24
11 -23 - -68 = 44 44 - 20 = 24
13 45 - -23 = 68 68 - 44 = 24
15 137 - 45 = 92 92 - 68 = 24
17 253 - 137 = 116 116 - 92 = 24
19 393 - 253 = 140 140 - 116 = 24
21 557 - 393 = 164 164 - 140 = 24
23 745 - 557 = 188 188 - 164 = 24
25 957 - 745 = 212 212 - 188 = 24
27 1193 - 957 = 236 236 - 212 = 24
29 1453 - 1193 = 260 260 - 236 = 24
31 1737 - 1453 = 284 284 - 260 = 24
33 2045 - 1737 = 308 308 - 284 = 24
35 2377 - 2045 = 332 332 - 308 = 24
37 2733 - 2377 = 356 356 - 332 = 24
39 3113 - 2733 = 380 380 - 356 = 24
41 3517 - 3113 = 404 404 - 380 = 24
Pour calculer l'adresse mémoire des trois lignes
qui dessinnent l'étoile située au centre d'un cube
de côté 'c' il faut faire la somme des quatre termes :
- coeff_1 = step_z * space_Z + step_y * space_Y + step_x * space_X
- coeff_2 = (i * step_x + j * step_y + k * step_z) * 6
- center = space_X * space_Y * space_Z / 2 et
- delta = sigma (de 1 à c) des termes de la colonne 1
draw_a_central_star (lines_origin, coeff_1 + center + coeff_2 + delta)
static void draw_a_central_star(GLuint *lines_origin, int n)
{
draw_line (lines_origin, n + 0, n + 1);
draw_line (lines_origin, n + 2, n + 3);
draw_line (lines_origin, n + 4, n + 5);
}
static void draw_line (GLuint *lines_origin, int a, int b)
{
*(lines_origin + lines_index) = a; lines_index ++;
*(lines_origin + lines_index) = b; lines_index ++;
}
On calcule le dernier terme de 'delta' en connaissant
sa différence avec le terme précédent de la colonne (1).
On calcule cette différence (d1) en ajoutant 24
au terme précédent de la colonne (d1).