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 |