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 |