A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VI Desenhos e Animação.

Apresentações semelhantes


Apresentação em tema: "CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VI Desenhos e Animação."— Transcrição da apresentação:

1 CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VI Desenhos e Animação

2 Arquivos fornecidos para a aula : CES10 Prat ppt: Slides da aula CES10 Prat ppt: Slides da aula lab_6_ces10_2013.doc: proposta do Lab 6 lab_6_ces10_2013.doc: proposta do Lab 6 Graficos_DevCpp.pdf: instruções do Prof. Paulo André para utilização do modo gráfico (Aba Artigos da página do prof) Graficos_DevCpp.pdf: instruções do Prof. Paulo André para utilização do modo gráfico (Aba Artigos da página do prof) Graficos_DevCpp.zip: arquivos com código de rotinas gráficas para incluir no Dev (Aba Códigos da página do prof) Graficos_DevCpp.zip: arquivos com código de rotinas gráficas para incluir no Dev (Aba Códigos da página do prof) Instrucoes_CONIO2.pdf: instruções do Prof. Paulo André para controle do cursor no modo texto do Dev (Aba Artigos da página do prof) Instrucoes_CONIO2.pdf: instruções do Prof. Paulo André para controle do cursor no modo texto do Dev (Aba Artigos da página do prof) conio2.zip: arquivos para a biblioteca conio2 a ser utilizada no Dev (Aba Códigos da página do prof) conio2.zip: arquivos para a biblioteca conio2 a ser utilizada no Dev (Aba Códigos da página do prof)

3 Programa 6.1: Posicionamento do cursor no vídeo-texto #include #include void main () { int col, lin; char c; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); printf ("Posicionar cursor? (s/n): "); printf ("Posicionar cursor? (s/n): "); c = getche(); while (c == 's' || c == 'S') { printf ("\rDigite a coluna e a linha: "); scanf ("%d%d", &col, &lin); scanf ("%d%d", &col, &lin); gotoxy (col, lin); getche (); gotoxy (col, lin); getche (); gotoxy (1, 1); gotoxy (1, 1); printf (" "); printf (" "); printf ("\rPosicionar cursor? (s/n): "); c = getche(); printf ("\rPosicionar cursor? (s/n): "); c = getche();}} Copiar, salvar e executar no Borland clrscr (conio.h): apaga a tela \r: reescreve a 1ª linha da tela Posiciona o cursor nas coordenadas desejadas – digitar um caractere Posiciona o cursor na coluna e linha 1 Apaga a 1ª linha \r: reescreve a 1ª linha da tela Para executar no Dev, devem ser copiados os arquivos referentes ao conio2.h

4 Programa 6.2: Desenho de segmentos de retas com * #include #include void main () { int a, b, i; printf ("Maximize a tela e digite algo!"); getche (); clrscr (); for (a=1, b=1, i=1; i<=10; a+=8, b+=2, i++) { gotoxy (a, b); printf ("********"); } printf ("\n\nDigite algo para encerrar: "); printf ("\n\nDigite algo para encerrar: "); getch (); } Copiar, salvar e executar no Borland Na tela Sempre posiciona o cursor na posição [a, b] Inicialmente [a, b] = [1, 1] A cada repetição a+=8 e b+=2

5 Programa 6.3: Determinação dos limites do gotoxy #include #include void main () { int i; printf ("Maximize a tela e digite algo!"); getche (); clrscr (); for (i=1; i<=80; i++) { gotoxy (i, i); printf ("%d", i%10); } printf ("\n\nDigite algo para encerrar: "); printf ("\n\nDigite algo para encerrar: "); getch (); } Copiar, salvar e executar no Borland O programa vai tentar escrever o valor de i%10 na diagonal de uma tela 80x80 Ver resultado a seguir

6 Limites: Coluna 80 Linha 44

7 Programa 6.4: Passeio do * pelo vídeo-texto #include #include void main () { int i, j, demora = ; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); for (i = 10; i <= 60; i++) { gotoxy (i, 5); printf (" *"); for (j = 1; j <= demora; j++); } for (i = 6; i <= 40; i++) { gotoxy (61, i-1); printf (" "); gotoxy (61, i); printf ("*"); for (j = 1; j <= demora; j++); } printf ("\n\nDigite algo para encerrar: "); printf ("\n\nDigite algo para encerrar: "); getch (); } Copiar, salvar e executar no Borland

8 Programa 6.4: Passeio do * pelo vídeo-texto #include #include void main () { int i, j, demora = ; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); for (i = 10; i <= 60; i++) { gotoxy (i, 5); printf (" *"); for (j = 1; j <= demora; j++); } for (i = 6; i <= 40; i++) { gotoxy (61, i-1); printf (" "); gotoxy (61, i); printf ("*"); for (j = 1; j <= demora; j++); } printf ("\n\nDigite algo para encerrar: "); printf ("\n\nDigite algo para encerrar: "); getch (); } Para i = 10, na linha 5: Escreve na coluna 10 e * na coluna 11 Para i = 11, na linha 5: Escreve na coluna 11, apagando * Escreve * na coluna 12 Dá a impressão de movimento do * uma posição p/direita Para i = 60, * vai para a coluna 61

9 Programa 6.4: Passeio do * pelo vídeo-texto #include #include void main () { int i, j, demora = ; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); for (i = 10; i <= 60; i++) { gotoxy (i, 5); printf (" *"); for (j = 1; j <= demora; j++); } for (i = 6; i <= 40; i++) { gotoxy (61, i-1); printf (" "); gotoxy (61, i); printf ("*"); for (j = 1; j <= demora; j++); } printf ("\n\nDigite algo para encerrar: "); printf ("\n\nDigite algo para encerrar: "); getch (); } Faz * permanecer numa posição durante um t perceptível O valor para demora é experimental Esse valor pode variar com o computador

10 Programa 6.4: Passeio do * pelo vídeo-texto #include #include void main () { int i, j, demora = ; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); for (i = 10; i <= 60; i++) { gotoxy (i, 5); printf (" *"); for (j = 1; j <= demora; j++); } for (i = 6; i <= 40; i++) { gotoxy (61, i-1); printf (" "); gotoxy (61, i); printf ("*"); for (j = 1; j <= demora; j++); } printf ("\n\nDigite algo para encerrar: "); printf ("\n\nDigite algo para encerrar: "); getch (); } Para i = 6, na coluna 61: Escreve na linha 5, apagando * Escreve * na linha 6 Dá a impressão de movimento do * uma posição p/baixo Para i = 40, * vai para a linha 40

11 Programa 6.4: Passeio do * pelo vídeo-texto #include #include void main () { int i, j, demora = ; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); for (i = 10; i <= 60; i++) { gotoxy (i, 5); printf (" *"); for (j = 1; j <= demora; j++); } for (i = 6; i <= 40; i++) { gotoxy (61, i-1); printf (" "); gotoxy (61, i); printf ("*"); for (j = 1; j <= demora; j++); } printf ("\n\nDigite algo para encerrar: "); printf ("\n\nDigite algo para encerrar: "); getch (); } Também faz * permanecer numa posição durante um t perceptível

12 Rotinas gráficas: Rotinas gráficas são necessárias para vários programas profissionais Rotinas gráficas são necessárias para vários programas profissionais A Linguagem C padrão não define rotinas gráficas A Linguagem C padrão não define rotinas gráficas Foram criados independentemente vários conjuntos de rotinas gráficas, tais como o Microsoft C/C++ para DOS e o Borland Graphics Interface (BGI) Foram criados independentemente vários conjuntos de rotinas gráficas, tais como o Microsoft C/C++ para DOS e o Borland Graphics Interface (BGI) Nestas aulas será utilizada a BGIm, que é uma versão da BGI para o ambiente Dev C++ Nestas aulas será utilizada a BGIm, que é uma versão da BGI para o ambiente Dev C++

13 Instalação da Biblioteca BGI no ambiente Dev C++: Arquivos necessários (compactados em Graficos_DevCpp.zip): Arquivos necessários (compactados em Graficos_DevCpp.zip): graphics.h: copiar em C:\Dev-Cpp\include graphics.h: copiar em C:\Dev-Cpp\include libbgi.a: copiar em C:\Dev-Cpp\lib libbgi.a: copiar em C:\Dev-Cpp\lib Uso de projetos: Uso de projetos: Para trabalhar em modo gráfico será necessário utilizar o conceito de projeto Para trabalhar em modo gráfico será necessário utilizar o conceito de projeto Projeto é um container que armazena todos os elementos (arquivos) que compõem um programa Projeto é um container que armazena todos os elementos (arquivos) que compõem um programa

14 Criando um novo projeto no ambiente Dev-C++: Clicar no menu "File" e selecionar "New", "Project... " Clicar no menu "File" e selecionar "New", "Project... " Escolher "Empty Project" e certificar-se de que a opção "C++ project" está selecionada Escolher "Empty Project" e certificar-se de que a opção "C++ project" está selecionada Escolher um nome para o projeto Escolher um nome para o projeto Pode-se dar qualquer nome válido para um arquivo Pode-se dar qualquer nome válido para um arquivo O nome do projeto será o nome do executável a ser gerado O nome do projeto será o nome do executável a ser gerado Após escolher o nome, clicar "OK " Após escolher o nome, clicar "OK " O Dev-C++ irá perguntar onde salvar o projeto: O Dev-C++ irá perguntar onde salvar o projeto: Escolher um diretório apropriado e salvar o projeto Escolher um diretório apropriado e salvar o projeto

15 Criando ou adicionando arquivos ao projeto: Duas formas: Duas formas: Clicar no menu "File" e selecionar "New Source File" ou Clicar no menu "File" e selecionar "New Source File" ou Clicar no menu "Project" e selecionar "New File" Clicar no menu "Project" e selecionar "New File" Então é só editar o arquivo com o programa e salvar Então é só editar o arquivo com o programa e salvar

16 Configuração do uso da biblioteca gráfica no projeto: Criado o projeto, é preciso mandar o Dev-C++ utilizar a biblioteca BGIm (que implementa a BGI para o Dev-C++) Criado o projeto, é preciso mandar o Dev-C++ utilizar a biblioteca BGIm (que implementa a BGI para o Dev-C++) Isto é feito através da janela "Project Options" Isto é feito através da janela "Project Options" A seguir, um conjunto de passos para realizar essa tarefa A seguir, um conjunto de passos para realizar essa tarefa

17 Passos para a configuração do uso da BGIm: Clicar no menu "Project" e escolher "Project Options" Clicar no menu "Project" e escolher "Project Options" Clicar na tab "Geral" e selecione "Win32 GUI" Clicar na tab "Geral" e selecione "Win32 GUI" Clicar na tab "Parameters" Clicar na tab "Parameters" No campo "Linker", digite o seguinte texto: No campo "Linker", digite o seguinte texto:-lbgi-lgdi32-lcomdlg32-luuid-loleaut32-lole32 Clicar OK

18 Programa 6.5: Desenho simples no vídeo-gráfico #include #include int main () { int i, j, left, top, bottom, right; int i, j, left, top, bottom, right; initwindow (700, 500, "Primeiro Programa Grafico"); initwindow (700, 500, "Primeiro Programa Grafico"); getch (); getch (); left = 10; right = 600; top = 10; bottom = 200; left = 10; right = 600; top = 10; bottom = 200; for (i = top; i <= bottom; i++) for (i = top; i <= bottom; i++) for (j = left; j <= right; j++) for (j = left; j <= right; j++) putpixel (j, i, MAGENTA); putpixel (j, i, MAGENTA); getch (); getch (); closegraph ( ); closegraph ( );} - Criar projeto - Adicionar este arquivo ao projeto - Configurar o projeto para o uso da BGI - Salvar e executar

19 Programa 6.5: Desenho simples no vídeo-gráfico #include #include int main () { int i, j, left, top, bottom, right; int i, j, left, top, bottom, right; initwindow (700, 500, "Primeiro Programa Grafico"); initwindow (700, 500, "Primeiro Programa Grafico"); getch (); getch (); left = 10; right = 600; top = 10; bottom = 200; left = 10; right = 600; top = 10; bottom = 200; for (i = top; i <= bottom; i++) for (i = top; i <= bottom; i++) for (j = left; j <= right; j++) for (j = left; j <= right; j++) putpixel (j, i, MAGENTA); putpixel (j, i, MAGENTA); getch (); getch (); closegraph ( ); closegraph ( );} Colore o pixel [j, i] com a cor MAGENTA Abre uma janela com título, de 700 colunas e 500 linhas

20 Lista de cores disponíveis na BGI:

21 Programa 6.6: Desenho de várias figuras #include #include int main () { int i, j, left, top, bottom, right; int i, j, left, top, bottom, right; /* Abrir janela grafica */ initwindow (700, 500, "Varias Figuras"); /* Colorir uma area quadrada de pixels */ getch (); getch (); left = 160; right = 400; top = 80; bottom = 320; for (i = top; i <= bottom; i++) for (j = left; j <= right; j++) putpixel (j, i, RED);

22 /* Desenhar as bordas de um quadrado */ getch (); setcolor (YELLOW); setcolor (YELLOW); rectangle (left, top, right, bottom); /* Desenhar as bordas de um circulo */ getch (); setcolor (LIGHTBLUE); setcolor (LIGHTBLUE); circle (280, 200, 120); /* Desenhar um segmento de reta */ getch (); setcolor (WHITE); setcolor (WHITE); line (40, 480, 640, 80);

23 /* Preencher um retangulo com textura e cor */ getch (); getch (); left = 80; right = 560; top = 400; bottom = 420; setfillstyle(11, LIGHTBLUE); bar (left, top, right, bottom); /* Escrever um texto */ getch (); setbkcolor(BROWN); setbkcolor(BROWN); outtextxy(50, 250, "Teste"); outtextxy(50, 250, "Teste"); /* Fechar janela grafica */ getch (); getch (); closegraph ( ); closegraph ( );} Mais detalhes sobre rotinas gráficas: Manual do Prof. Paulo André Castro Sites da Internet


Carregar ppt "CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VI Desenhos e Animação."

Apresentações semelhantes


Anúncios Google