123
456
789
Cada uno tiene un color guardado en una variable.
Debo hacer algo así:
Código:
// 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í:
Código
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...
// 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
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.