Vous pouvez diviser le tableau n x n
comme ceci:
+-----------+
|\ /|
| \ 1 /|
| \ /|
| \ / |
| \/ |
| 4 + 2 |
| /\ |
| / \ |
|/ \ |
|/ 3 \ |
|/ \|
+-----------+
Puis tous les pixels dans la région 1 déplacement vers la droite d'un pixel, tous les pixels dans la région 2 se déplacent vers le bas un pixel, etc.
Les régions peuvent être défini mathématiquement. Supposons que le coin inférieur gauche est (0,0), alors les régions de division de ligne 1 & 4 de 2 & 3 est x = y
, et les régions de division de ligne 1 & 2 de 3 & 4 est x = n - y
. Alors:
Un pixel est dans la région 1 si x < y
et x > n - y
. (À gauche du x=y
, droit d'x=n-y
)
Un pixel est dans la région 2 si x > y
et x > n - y
. (Droit de x=y
, droit de x=n-y
)
De même pour les régions 3 & 4.
Vous devez obtenir les pixels de bord droit (certaines de ces comparaisons ont besoin d'un signe égal) et votre code dépendra de la impair-ou-even-ness de la taille du tableau. Mais vous devriez pouvoir partir de là.
Quelles idées avez-vous venir avec ce que vous avez décidé ne fonctionnera pas? Quelles sont les contraintes sur le problème? Utilisez-vous Java ou C++? –
J'utilise Java. la langue n'est pas une barrière. – tanush
Je ne suis pas en mesure de voir comment cela peut être mis en œuvre – tanush