Olivier Pécheux
opecheux@multimania.com |
> source=Modif_P.PAS |
>I) Introduction |
>II) Dessiner à l'écran |
>II.1) Tableau prédéfini mem |
mem[$A000:offset]:=couleur | l |
const ecran=$A000; .... mem[ecran:offset]:=couleur | l |
>II.2) Pointeur sur la mémoire |
{Déclaration:} const ecran:^array[0..63999] of byte = ptr($A000,$0000); .... {Utilisation:} ecran^[offset]:=couleur; | l |
>II.3) Tableau direct |
{Déclaration:} var ecran:array[0..63999] of byte absolute $A000:$000 .... {Utilisation:} ecran[offset]:=couleur; | l |
>II.4) Bilan |
>III) Les incrémentations de X et de Y |
l | Où sont les astuces promises? |
l |
|
{ Initialisation } const largeur_ecran:=320; offset_P:=(((y shl 2) + y) shl 6) +X; {voir "Tu veux mon point quelque part?"} { Incrémentation de X: } inc(offset_P); { Incrémentation de Y: } inc(offset_P,largeur_ecran); | l |
>IV) Offset du deuxième point |
l | Si offset_P augmente d'une certaine quantité, offset_Q diminue d'autant. |
l |
Pour dessiner une droite:
|
l | Il est fou: il retire des incrémentations mais il rajoute une variable qu'il faut décrémenter! |
>V) Les 8 quadrans |
^y \ 3 | 2 / \ | / \ | / 4 \ | / 1 \|/ -----*----->x /|\ 5 / | \ 8 / | \ / | \ / 6 | 7 \ | l |
>V.1) Quadrans opposé |
>V.2) Fortes pentes et faibles pentes |
>V.3) Symétries horizontales |
>VI) Un programme qui se modifie |
l | Si on modifie le programme, cela modifie la mémoire mais pas la queue de prélecture. |
>VI.1) MODIF_P.PAS |
>VI.2) Auto_modifie_1 |
>VI.3) Auto_modifie_2 |
>VI.4) Auto_modifie_3 |
>VII) Enfin les droites! |
>VII.1) Procedure droite |
>VII.2) Procedure droite_horizontale |
>VII.3) Procedure droite_verticale |
>VII.4) Procedure cadre |
>VII.5) Procedure rectangle |
>VIII) Peut-on faire mieux? |
>IX) Conclusions |