Bonjour à tous, j'aimerai créer une fonction qui prend pour clé un tableau contenant des cases avec un attribut identifiant, qui me retournerai le même tableau mais avec deux cases supplémentaires : une coordonnée x et y en fonction de la position orthogonal de la case du tableau.
Voici deux exemples pour illustrer ce qui vient d'être dit :
Clé de fonction : Tableau A :
0 | 1 | 2 |
3 | 4 | 5 |
6 | 7 | 8 |
(-1;1) | (0;1) | (1;1) |
(-1;0) | (0;0) | (1;0) |
(-1;-1) | (0;-1) | (1;-1) |
0 | 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 |
(-2;2) | (-1;2) | (0;2) | (1;2) | (2;2) |
(-2;1) | (-1;1) | (0;1) | (1;1) | (2;1) |
(-2;0) | (-1;0) | (0;0) | (1;0) | (2;0) |
(-2;-1) | (-1;-1) | (0;-1) | (1;-1) | (2;-1) |
(-2;-2) | (-1;-2) | (0;-2) | (1;-2) | (2;-2) |
J'ai pas bien compris ce que tu cherchais.
la fonction qui à i (indice du tableau) associe une paire de coordonnées ?
Tes tableaux sont-ils toujours de dimensions l*c ?
avec l = nombre impair de lignes
avec c = nombre impair de colonnes
...
Merci de t'être intéresser à mon sujet pgeod. C'est bien une fonction qui te retourne un paire de coordonnées pour un indice du tableau donnée, je me suis mal expliqué précédemment excusez-moi.
Mes tableaux ont toujours un nombre de ligne et de colonnes identiques, et sont toujours impair.
j'ai compris. essaye cela :
tableau carré : n x n avec n impair
i = indice courant du tableau de 0 à N = n²-1
k = indice de la case centrale = (n - 1) / 2
j = N - i = n p + r (division euclidienne)
--> case de coordonnées (-r + k; p - k)
...
Merci pour cette réponse, j'avais déjà trouvé le i et le k moi-même, en revanche je ne comprend pas ces deux lignes :
j = N - i = n p + r (division euclidienne)
--> case de coordonnées (-r + k; p - k)
Pourquoi parles-tu de division euclidienne, et à quoi corresponde j, p et r ?
au lieu d'utiliser i, on utilise j = N - i
c'est à dire l'indice courant en partant
non pas du début de tableau, mais de la fin du tableau.
Jusque là c'est bon ?
...
il faut ensuite transformer cet indice j en
nombre de lignes (p) et en nombre de colonnes (r)
d'où la division euclidienne de j par n .
ex : sur un tableau 5 x 5
j = 7 = 5*1 + 2 --> (ligne, colonne) = (1; 2)
rappel : on prend le tableau en commençant par la fin
et la 1° ligne est 0, la première colonne vaut 0.
...
ok, merci, autre question, si j'ai un tableau comme celui qui suit :
0, 0 | 1, 0 | 2, 0 |
0, 1 | 1, 1 | 2, 1 |
0, 2 | 1, 2 | 2, 2 |
-1, 1 | 0, 1 | 1, 1 |
-1, 0 | 0, 0 | 1, 0 |
-1, -1 | 0, -1 | 1, -1 |
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :