Olivier Pécheux
opecheux@multimania.com http://www.multimania.com/opecheux |
>I) Introduction |
>II) Dessiner à l'écran |
>II.1) Fonction pokeb |
pokeb(0xA000,offset,couleur) | l |
#define ecran 0xA000; .... pokeb(ecran,offset,couleur) | l |
>II.2) Pointeur sur la mémoire |
/* Déclaration: */ char far*ecran=(char far*)MK_PF(0xA000,0x0000); .... /* Utilisation: */ ecran[offset]=couleur; | l |
>II.3) Autre définition |
/* Déclaration: */ char far*ecran=(char far*)0xA0000000l; .... /* Utilisation: */ ecran[offset]=couleur; | l |
>II.4) Bilan |
>III) Les incrémentations de X et de Y |
l | Ou sont les astuces promises? |
l |
|
Au début: const largeur_ecran=320; offset_P=(y >> 8) + (y >> 6) +X; //voir "Tu veux mon point quelque part?" Incrémentation de X: offset_P++; Incrémentation de Y: 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é |
temporaire=x1; x1=x2; x2=temporaire; | l |
_BX=x1; x2=x1; x1=_BX | l |
>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_C.C |
>VI.2) Auto_modifie |
>VI.3) Conclusion |
>VII) Enfin les droites! |
>VII.1) Fonction droite |
>VII.2) Fonction droite_horizontale |
>VII.3) Fonction droite_verticale |
>VII.4) Fonction cadre |
>VII.5) Fonction rectangle (pleins) |
>VIII) Peut-on faire mieux? |
>IX) Conclusions |