Explication de mosaïque dans Basic ; dessin avec des modèles

Traductions disponibles Traductions disponibles
Numéro d'article: 58105 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Le Visual Basic for MS-DOS PEINTURE instruction utilisable pour dessiner une zone de l'écran dans une couleur particulière ou un motif. Dessin avec un motif est appelé mosaïque.

La syntaxe de l'instruction de PEINTURE est la suivante :
   PAINT [STEP] (x,y) [,[paint] [,[bordercolor] [,[background]]]
				
la variable nommée « peinture » est utilisée pour contrôler la couleur de la région peints. S'il s'agit d'une valeur numérique, le nombre doit être un attribut de couleur valide. La couleur correspondante est utilisée pour dessiner la zone. Si la variable « peinture » est vide, l'attribut de couleur de premier plan est utilisé.

Toutefois, si vous utilisez une chaîne dans cette partie de l'instruction de PEINTURE, cette chaîne est utilisée pour faire « mosaïque ». Cet article explique comment faire mosaïque en mode autre écran.

Pour une explication approfondie de mosaïque, consultez les manuels suivants :

  1. " Microsoft Visual Basic for Guide MS-DOS programmer ' s ".
  2. « Microsoft QuickBasic 4.5 : programmation en Basic, « pages 181-191
  3. " Microsoft QuickBasic 4.0 : programmation dans Basic : sélection des sujets, « pages 226-239
  4. « Microsoft Basic 7.0 : Guide du programmeur, « pages 179-189
  5. « Compilateur Microsoft Basic 6.0 : programmation dans Basic : sujets sélectionnés, « pages 226-239
  6. Manuel « Microsoft QuickBasic compilateur » pour versions 2.00, 2.01 et 3,00, pages 380-382

Plus d'informations

Chaque mosaïque pour un motif est composé d'une grille rectangulaire de pixels. Cette grille mosaïque peut avoir des lignes jusqu'à 64 dans tous les modes d'écran. Toutefois, le nombre de pixels dans chaque ligne dépend de la mode plein écran. Cela est car selon le nombre d'attributs de couleur par écran, chaque pixel peut être représentée par un nombre variable de bits.

La formule pour le nombre de bits par pixel est la suivante :
   Bits-per-pixel = Log (base 2) of the number-of-attributes
				
le nombre d'attributs indique le nombre de couleur des attributs dans ce mode plein écran.

Le tableau suivant présente la bits par pixel et la longueur de morceau-ligne pour chaque mode d'écran :
   Screen Mode      Bits-per-Pixel       Length-of-Tile-Row
   -----------      --------------       ------------------

    1                     1                     8 pixels
    2                     2                     4 pixels
    3                     1                     8 pixels
    4                     1                     8 pixels
    7                     4                     2 pixels
    8                     4                     2 pixels
    9                     2                     4 pixels
   10                     2                     4 pixels
   11                     1                     8 pixels
   12                     4                     2 pixels
   13                     8                     1 pixel
				
le moyen plus simple pour définir une ligne mosaïque est d'utiliser la fonction CHR$(). Cette fonction définit un octet (8 bits) dans la chaîne de mosaïque. Il est également plus facile à utiliser deux chiffres hexadécimaux par octet car ils sont facilement convertis en 4 bits par chiffre. Par exemple, la ligne suivante :
   TILE$ = CHR$(&HF0)
				
définit une chaîne de mosaïque avec la valeur 11110000. Il est utilisé dans une instruction PEINTURE, telle que la suivante :
   PAINT (100,100), TILE$
				

ÉCRANS 2, 3, 4 et 11

En mode écran avec seulement deux attributs (mode 2, 3, 4 et 11), la chaîne de mosaïque est très simple étant donné que chaque bit est égal à un pixel. Un un (1) moyen figurant sur le pixel et un zéro (0) signifie qui dépasse le pixel.

ÉCRANS 1, 9 et 10

En mode écran avec quatre attributs (modes 1, 9 et 10), la mosaïque de l'Est uniquement un peu plus compliqué car un pixel est représenté par deux bits. Par exemple, si les deux bits étaient 01, le pixel est extrait de couleur 1. Si elles étaient 11, le pixel serait couleur 3. Un octet est égale à 4 pixels. L'octet 00011011 serait dessiner pixels 4 consécutivement en couleur 0, 1, 2 et 3. La chaîne de mosaïque pour 00011011 serait suivantes :
   TILE$ = CHR$(&H1B)   ' 0001 = &H1, 1101 = &HB
				

ÉCRANS 7, 8 et 12

Mosaïque en mode de écran EGA et VGA avec plus de 4 couleurs est beaucoup plus complexe. Dans ces modes, il prend plusieurs lignes (octet) pour définir une ligne mosaïque. Cela est dû au fait que chaque pixel est représenté three-dimensionally dans une pile de « faces bits », plutôt que séquentiel dans un plan unique.

Voici un exemple comment définir un motif plusieurs constituée de lignes d'alternance jaune et magenta en mode écran avec 16 couleurs attributs (modes 7, 8 et 12). Le tableau suivant indique comment les couleurs sont définies pour chaque pixel et comment les organiser en instructions CHR$() :
          Column
          1 2 3 4 5 6 7 8
        -------------------
Row 1     1 1 0 0 0 0 1 1   =    CHR$(&HC3)
Row 2     0 0 1 1 1 1 0 0   =    CHR$(&H3C)
Row 3     1 1 1 1 1 1 1 1   =    CHR$(&HFF)
Row 4     0 0 1 1 1 1 0 0   =    CHR$(&H3C)

     TILE$ = CHR$(&HC3)+CHR$(&H3C)+CHR$(&HFF)+CHR$(&H3C)
				
la ligne précédente définit pixels 8 des couleurs magenta, magenta, jaune, jaune, jaune, jaune, magenta et magenta. Cette combinaison entraîne alternance des bandes de magenta et jaune. Vous pouvez obtenir la couleur en lisant chaque colonne en bas à TOP. Par exemple, le premier pixel est défini dans la colonne 1 par le nombre de couleurs 0101. C'est couleur 5, qui par défaut magenta. Le pixel sixième est défini par le nombre 1110 ou couleur 14, qui est jaune dans la palette par défaut.

Pour dessiner un cercle avec ce modèle, vous devez effectuer les opérations suivantes :

Exemple

Pour essayer cet exemple en VBDOS.EXE :

  1. Dans le menu Fichier, choisissez Nouveau projet.
  2. Copiez l'exemple de code à la fenêtre code.
  3. Appuyez sur F5 pour exécuter le programme.
  SCREEN 12
  TILE$ = CHR$(&HC3)+CHR$(&H3C)+CHR$(&HFF)+CHR$(&H3C)
  CIRCLE (100,100),50       ' A circle of radius 50.
  PAINT (100,100),TILE$
  END
				

ÉCRAN 13

Écran mode 13, qui dispose des attributs de 256 fonctionne différemment les autres modes EGA et VGA. Vous avez beaucoup moins de flexibilité avec écran 13 qu'effectuer avec le même les écrans de deux couleurs. Le plus que vous pouvez effectuer avec écran 13 mosaïque consiste à créer des lignes horizontales de différentes couleurs. C'est très simple car un octet est égal à un pixel couleur. Par conséquent, une instruction CHR$() définit une seule ligne ou une ligne.

Pour dessiner un cercle dont alternance des lignes de couleur 5 (magenta) et couleurs 14 (jaune), vous devez effectuer les opérations suivantes :

Exemple

Pour essayer cet exemple en VBDOS.EXE :

  1. Dans le menu Fichier, choisissez Nouveau projet.
  2. Copiez l'exemple de code à la fenêtre code.
  3. Appuyez sur F5 pour exécuter le programme.
  SCREEN 13
  TILE$ = CHR$(&H5) + CHR$(&HE)   ' Colors 5 and 14.
  CIRCLE (100,100),50
  PAINT (100,100),TILE$
  END
				

Propriétés

Numéro d'article: 58105 - Dernière mise à jour: mardi 16 août 2005 - Version: 2.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic for MS-DOS
  • Microsoft QuickBasic 4.0
  • Microsoft QuickBASIC 4.0b
  • Microsoft QuickBasic 4.5 pour MS-DOS
  • Microsoft BASIC Compiler 6.0
  • Microsoft BASIC Compiler 6.0b
  • Microsoft BASIC Professional Development System 7.0
Mots-clés : 
kbmt KB58105 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 58105
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com