EXPLICAÇÃO de lado a lado no Basic; pintar com padrões

Traduções de Artigos Traduções de Artigos
Artigo: 58105 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

O Visual Basic for MS-DOS pintura instrução pode ser utilizado para apresentar uma área do ecrã numa determinada cor ou padrão. Pintar com um padrão é designado por "impressão de cartaz."

A sintaxe para a instrução de pintura é da seguinte forma:
   PAINT [STEP] (x,y) [,[paint] [,[bordercolor] [,[background]]]
				
a variável identificado como "tinta" é utilizada para controlar a cor da região painted. Se for um valor numérico, o número tem de ser um atributo de cor válido. A cor correspondente é utilizada para apresentar a área. Se a variável "tinta" for deixada em branco, o atributo de cor de primeiro plano é utilizado.

No entanto, se utilizar uma cadeia nesta parte da instrução de pintura, esta cadeia é utilizada para fazer "impressão de cartaz". Este artigo descreve como efectuar a impressão de cartaz em modos de ecrã diferente.

Para obter uma explicação aprofundada da disposição lado a lado, consulte os manuais seguintes:

  1. "Microsoft Visual Basic for MS-DOS Programmer ' s Guide".
  2. "Microsoft QuickBasic 4.5: Programming no Basic," páginas 181-191
  3. "Microsoft QuickBasic 4.0: Programming no Basic: seleccionados tópicos," páginas 226-239
  4. "Microsoft Basic 7.0: manual," páginas 179-189
  5. "Compilador Microsoft Basic 6.0: Programming no Basic: tópicos seleccionados," páginas 226-239
  6. Manual "Microsoft QuickBasic Compiler" versão 2.00, 2.01 e 3.00, páginas 380-382

Mais Informação

Cada mosaico para um padrão é composto por uma grelha rectangular de pixels. Esta grelha de mosaicos pode ter até 64 linhas em todos os modos de ecrã. No entanto, o número de pixels em cada linha depende do modo de ecrã. Isto acontece porque, dependendo do número de atributos de cor por ecrã, cada pixel pode ser representado por um número de bits variável.

A fórmula para o número de bits por pixel é o seguinte:
   Bits-per-pixel = Log (base 2) of the number-of-attributes
				
o número de atributos é o número dos atributos de cor nesse modo de ecrã.

A tabela seguinte fornece o bits por pixel e o comprimento do mosaico-linha para cada modo de ecrã:
   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
				
a maneira definir uma linha do mosaico é com a função CHR$(). Esta função define um byte (8 bits) na cadeia de impressão de cartaz. Também é mais fácil utilizar dois dígitos hexadecimais por byte de uma vez que facilmente são convertidas para 4 bits por dígitos. Por exemplo, a seguinte linha:
   TILE$ = CHR$(&HF0)
				
define uma cadeia de disposição lado a lado com o valor 11110000. É utilizado numa instrução pintura, tal como o seguinte:
   PAINT (100,100), TILE$
				

ECRÃS 2, 3, 4 e 11

Nos modos de ecrã com apenas dois atributos (modos 2, 3, 4 e 11), a cadeia de impressão de cartaz é muito simples desde que cada bit é igual a um pixel. Um meio um (1) o pixel consta e (uma zero 0) significa que o pixel está desactivado.

ECRÃS 1, 9 e 10

Nos modos de ecrã com quatro atributos (modos 1, 9 e 10), a impressão de cartaz é apenas um pouco mais complicado desde um pixel é representado por dois bits. Por exemplo, se dois bits 01, em seguida, o pixel iria ser emitido em cor 1. Se fossem 11, o pixel seria cor 3. Um byte seria igual a 4 pixels. O byte 00011011 seria desenhar 4 pixels em cor 0, 1, 2 e 3 consecutivamente. A cadeia de impressão de cartaz para 00011011 seria o seguinte:
   TILE$ = CHR$(&H1B)   ' 0001 = &H1, 1101 = &HB
				

ECRÃS 7, 8 e 12

Impressão de cartaz em EGA e VGA modos de ecrã com cores mais do que 4 é muito mais complicada. Nestes modos, demora mais de uma linha (bytes) para definir uma linha de impressão de cartaz. Isto acontece porque cada pixel é representada three-dimensionally numa pilha de "planos de bit", em vez sequencialmente um único avião.

Segue-se um exemplo de como definir um padrão multicor consiste em linhas de alternar amarelo e magenta num modo de ecrã com atributos de 16 cores (modos 7, 8 e 12). A tabela seguinte mostra como as cores estão definidas para cada pixel e como organizá-las em instruções 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)
				
a linha anterior define 8 pixels, das cores magenta, magenta, amarelo, amarelo, amarelo, amarelo, magenta e magenta. Esta combinação resulta num alternados faixas de magenta e amarelo. Pode obter a cor lendo cada coluna de baixo para TOP. Por exemplo, o pixel primeiro é definido da coluna 1 pelo número de cores 0101. Esta é a cor 5, que assume a predefinição para magenta. O sexto pixel é definido pelo número 1110 ou cor 14, sendo amarelo na paleta predefinida.

Para pintar um círculo com este padrão, iria efectue o seguinte:

Exemplo

Para experimentar este exemplo VBDOS.EXE:

  1. No menu ' ficheiro ', seleccione novo projecto.
  2. Copie o exemplo de código para a janela de código.
  3. Prima F5 para executar o programa.
  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
				

13 DE ECRÃ

Modo de ecrã 13, que tem 256 atributos, funciona diferente de outros modos EGA e VGA. Tem muito menos flexibilidade com ecrã 13 do que com o mesmo os ecrãs de duas cores. O máximo que pode fazer com a disposição em mosaico ecrã 13 consiste em criar linhas horizontais de cores diferentes. Isto é muito simples, uma vez que um byte é igual a cor de um pixel. Por conseguinte, uma instrução CHR$() define uma linha ou linha.

Para pintar um círculo com alternados linhas de cor 5 (magenta) e cores 14 (amarelo), teria fizer o seguinte:

Exemplo

Para experimentar este exemplo VBDOS.EXE:

  1. No menu ' ficheiro ', seleccione novo projecto.
  2. Copie o exemplo de código para a janela de código.
  3. Prima F5 para executar o programa.
  SCREEN 13
  TILE$ = CHR$(&H5) + CHR$(&HE)   ' Colors 5 and 14.
  CIRCLE (100,100),50
  PAINT (100,100),TILE$
  END
				

Propriedades

Artigo: 58105 - Última revisão: 16 de agosto de 2005 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic for MS-DOS
  • Microsoft QuickBasic 4.0
  • Microsoft QuickBASIC 4.0b
  • Microsoft QuickBasic 4.5 para MS-DOS
  • Microsoft BASIC Compiler 6.0
  • Microsoft BASIC Compiler 6.0b
  • Microsoft BASIC Professional Development System 7.0
Palavras-chave: 
kbmt KB58105 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 58105
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

Submeter comentários

 

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