1 / 23

CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013

CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013. Capítulo VI Desenhos e Animação. Arquivos fornecidos para a aula : CES10 Prat 6 2013. ppt : Slides da aula lab_6_ces10_2013. doc : proposta do Lab 6

hilde
Download Presentation

CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Arquivos fornecidos para a aula: • CES10 Prat 6 2013.ppt: Slides da aula • 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.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) • conio2.zip: arquivos para a biblioteca conio2 a ser utilizada no Dev(Aba Códigos da página do prof)

  3. Copiar, salvar e executar no Borland clrscr (conio.h): apaga a tela \r: reescreve a 1ª linha da tela Programa 6.1: Posicionamento do cursor no vídeo-texto #include <stdio.h> #include <conio.h> void main () { intcol, lin; char c; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); printf ("Posicionar cursor? (s/n): "); c = getche(); while (c == 's' || c == 'S') { printf ("\rDigite a coluna e a linha: "); scanf ("%d%d", &col, &lin); gotoxy (col, lin); getche (); gotoxy (1, 1); printf (" "); printf ("\rPosicionar cursor? (s/n): "); c = getche(); } } 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. Copiar, salvar e executar no Borland Programa 6.2: Desenho de segmentos de retas com ‘*’ #include <stdio.h> #include <conio.h> 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: "); getch (); } Sempre posiciona o cursor na posição [a, b] Inicialmente [a, b] = [1, 1] A cada repetição a+=8 e b+=2 Na tela

  5. Copiar, salvar e executar no Borland Programa 6.3: Determinação dos limites do gotoxy #include <stdio.h> #include <conio.h> 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: "); getch (); } 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. Copiar, salvar e executar no Borland Programa 6.4: Passeio do ‘*’ pelo vídeo-texto #include <stdio.h> #include <conio.h> void main () { int i, j, demora = 100000000; 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: "); getch (); }

  8. 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 Programa 6.4: Passeio do ‘*’ pelo vídeo-texto #include <stdio.h> #include <conio.h> void main () { int i, j, demora = 100000000; 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: "); getch (); }

  9. Programa 6.4: Passeio do ‘*’ pelo vídeo-texto #include <stdio.h> #include <conio.h> void main () { int i, j, demora = 100000000; 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: "); getch (); } Faz ‘*’ permanecer numa posição durante um t perceptível O valor 100.000.000 para ‘demora’ é experimental Esse valor pode variar com o computador

  10. Programa 6.4: Passeio do ‘*’ pelo vídeo-texto #include <stdio.h> #include <conio.h> void main () { int i, j, demora = 100000000; 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: "); 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 <stdio.h> #include <conio.h> void main () { int i, j, demora = 100000000; 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: "); 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 • 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) • 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): • graphics.h: copiar em C:\Dev-Cpp\include • libbgi.a: copiar em C:\Dev-Cpp\lib • Uso de projetos: • 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

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

  15. Criando ou adicionando arquivos ao projeto: • Duas formas: • Clicar no menu "File" e selecionar "New Source File" ou • Clicar no menu "Project" e selecionar "New File" • 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++) • Isto é feito através da janela "Project Options" • 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 na tab"Geral" e selecione "Win32 GUI" • Clicar na tab"Parameters" • 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 <stdio.h> #include <graphics.h> int main () { int i, j, left, top, bottom, right; initwindow (700, 500, "Primeiro Programa Grafico"); getch (); left = 10; right = 600; top = 10; bottom = 200; for (i = top; i <= bottom; i++) for (j = left; j <= right; j++) putpixel (j, i, MAGENTA); getch (); 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 <stdio.h> #include <graphics.h> int main () { int i, j, left, top, bottom, right; initwindow (700, 500, "Primeiro Programa Grafico"); getch (); left = 10; right = 600; top = 10; bottom = 200; for (i = top; i <= bottom; i++) for (j = left; j <= right; j++) putpixel (j, i, MAGENTA); getch (); 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 <stdio.h> #include <graphics.h> int main () { int i, j, left, top, bottom, right; /* Abrir janela grafica */ initwindow (700, 500, "Varias Figuras"); /* Colorir uma area quadrada de pixels */ 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); rectangle (left, top, right, bottom); /* Desenhar as bordas de um circulo */ getch (); setcolor (LIGHTBLUE); circle (280, 200, 120); /* Desenhar um segmento de reta */ getch (); setcolor (WHITE); line (40, 480, 640, 80);

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

More Related