Digamos que los pixeles tienen estos nombres:
123
456
789
Cada uno tiene un color guardado en una variable.
Debo hacer algo así:
// Si esta variable no cambia, el dibujo es simétrico:
Simetrico = "Sí"
X = Concatenar 123
Y = Concatenar 321
Si X != Y
Simetrico = "No"
sino
X = Concatenar 456
Y = Concatenar 654
Si X != Y
Simetrico = "No"
sino
X = Concatenar 789
Y = Concatenar 987
Si X != Y
Simetrico = "No"
Pero si el dibujo es muy grande no puedo hacer eso, tantos "si" metidos unos en otros y tantos concatenar. El tamaño del dibujo es variable.
Estoy intentando un par de loops así:
// Se captarán los colores de cada fila y al revés:
// Si son distintos, ya no, el dibujo no es simétrico.
Fila = 0;
// Empezar a captar de una nueva fila:
do {
ColoresDeFila = "";
InversionDeFila = "";
Fila++;
Columna = 0;
ColumnaInversa = PixelesdeLargo+1;
// Captar siguiente columna:
do {
Columna++;
PixelaCaptar = ...
ColoresDeFila = ColoresDeFila+eval("ColordePixel"+PixelaCaptar);
ColumnaInversa--;
InversoaCaptar = ...
InversionDeFila = InversionDeFila+eval("ColordePixel"+InversoaCaptar);
while Columna<PixelesdeLargo
Si ColoresDeFila != InversionDeFila
Simetrico = "No"
Fila = PixelesdeLargo
while Fila<PixelesdeLargo
Pero me falta lo que va en los puntos suspensivos, son fórmulas matemáticas cuyos resultados indican el pixel que debe mirarse y el opuesto. Tomando como base el tamaño que puse al inicio, PixelesdeLargo es 3. Bueno...
Cuando fila es 1 y columna 1, el pixel señalado debe ser el 1.
1 y 2: 2.
1 y 3: 3.
2 y 1: 4.
¿Cual es la fórmula? Puede iniciarse a contar desde fila 0 y columna 0 si les queda más cómodo.
Son 2 fórmulas las que preciso, pero teniendo una creo que puedo averiguar la otra.
Está relacionado con esto pero creo que es al revés:
https://foro.rinconmatematico.com/index.php?topic=126225.0Ahí es Averiguar columna y fila de un casillero,
acá es averiguar el pixel teniendo la columna y fila.