★ CODING ★ AMSTRAD SEMANAL ★ GIROS DE GRÁFICOS ★![]() |
| Giros de gráficos |
En el presente capítulo veremos una rutina que se encargará de realizar esta tarea, pudiendo girar un gráfico hasta en cuatro posiciones distintas, cada una de ellas distanciada por 90 grados. Cuando creamos nuestros propios gráficos muchas veces tenemos que realizar los mismos en diferentes posiciones, y para ello tenemos que definir dicho gráfico para cada una de las diferentes posiciones. De esta forma, si nosotros tenemos un gráfico en la posición inicial, al ejecutar nuestra rutina obtendremos dicho gráfico girado en 90 grados. Si, una vez hecho esto, ejecutamos de nuevo la rutina, obtendremos sucesivamente el mismo gráfico, pero esta vez con un giro de 180 y 270 grados con respecto al original. Como siempre que hablamos de gráficos, y dadas las diferentes estructuras de pantalla que posee el Amstrad, debemos hacer algunas aclaraciones. Así pues, nuestra rutina funcionará correctamente sólo con gráficos realizados expresamente para el modo 2 de pantalla, en el cual todos los bits que componen cada uno de los bytes contienen información de pixel encendidos o apagados, sin tener en cuenta el color. En los gráficos realizados para los demás modos de pantalla, el programa no funcionará, ya que los bytes que componen dicho tipo de gráficos contienen información sobre el color con el que deben ser imprimidos, lo cual dificulta enormemente la operación de giro. Debemos también apuntar que la rutina está preparada para funcionar con gráficos compuestos de ocho bytes; es decir, con gráficos semejantes a caracteres definidos por el usuario. Esto se ha hecho de esta forma para que esta rutina sea utilizable tanto por aquellos que utilizan bloques gráficos, como para aquellos que prefieren los gráficos definidos por el usuario. De cualquier forma, esta rutina puede ser modificada de manera que sea utilizable para bloques gráficos de cualquier dimensión, realizando los cambios oportunos en el bucle principal del programa. Vamos a explicar a continuación cuál es el método de trabajo para conseguir el giro de los gráficos en cualquier dirección. Debemos tomar el bit 7 del primer byte y colocarlo en el bit 7 del octavo (último) byte, el bit 6 del byte número uno, debe colocarse en el último bit del byte 7, y así sucesivamente, hasta llegar al bit 1 del primer byte, que deberá colocarse en el bit 7 del mismo byte. Seguidamente empezaremos a colocar ordenadamente los bits pertenecientes al segundo byte de nuestro gráfico. Pondremos el bit 7 de dicho byte en el sexto bit del último byte, el bit 6 del segundo byte, en el 6 del byte 7, y así sucesivamente hasta colocar el bit 0 del segundo byte, en el bit 6 del primero. Esta operación deberemos ejecutarla con los ocho bytes que componen nuestro gráfico, colocando cada uno de los bits en las posiciones correspondientes. Gráficamente la operación a realizar sería como la que se representa a continuación:
En el gráfico anterior, los números del 1 al 64 representan los 64 bits que forman los ocho bytes que componen nuestro gráfico. De esta forma, si, por ejemplo, tomamos el gráfico correspondiente a la letra «A», éste quedaría de la siguiente forma, una vez producido el giro:
Veamos a continuación cuál es el funcionamiento de la rutina y cuáles son los parámetros principales que utiliza el programa. Las dos variables principales que utiliza el programa deben apuntar a dos buffers distintos, uno de ellos debe contener el gráfico inicial, y el otro debe reservar un espacio para colocar el gráfico girado. BUFLET .... Dirección del gráficoAsí pues, debemos cargar el registro doble DE con la dirección donde se encuentra nuestro gráfico (BUFLET), y el registro HL con la dirección del espacio reservado para colocar el gráfico una vez girado. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 0XX0000X | X0000XX0 | |
| Gráfico inicial | Gráfico «espejo» |
Para conseguir este efecto para un byte, podríamos escribir el siguiente programa:
Así pues, si deseáramos transformar un gráfico compuesto por ocho bytes, deberíamos hacer:
En definitiva, tecleando esta rutina se pueden conseguir giros de 90 grados en cuatro posiciones diferentes de nuestros gráficos. Así podremos utilizar la posición que más se ajuste a nuestros deseos.
Utilizando esta rutina se pueden realizar airos en gráficos de 8 bytes, pero puede modificarse para utilizarlo en gráficos de cualquier dimensión.
| ![]() |
|
Page créée en 146 millisecondes et consultée 65 fois L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |