Return to Video

Aprenda Programação 3: Criando uma animação, usando random()

  • 0:00 - 0:04
    Vamos recapitular o que vimos até agora.
  • 0:04 - 0:10
    Nós agora saber usar dois comandos. Um é chamado 'point', o outro é 'line'.
  • 0:10 - 0:18
    E nós sabemos que depois de digitar esses comandos temos que por algo entre parênteses.
  • 0:18 - 0:23
    Uma sequência de valores separados por vírgulas.
  • 0:23 - 0:27
    Algumas vezes, como neste caso, são somente dois valores...
  • 0:27 - 0:30
    'line' precisa de quatro valores.
  • 0:30 - 0:38
    No final da linha é preciso haver um ponto-e-vírgula para indicar ao computador que a linha acabou.
  • 0:38 - 0:42
    Vamos tentar rodar o programa sem ele e ver o que acontece.
  • 0:42 - 0:46
    Como você pode ver, erro de sintaxe. Talvez esteja faltando um ponto-e-vírgula.
  • 0:46 - 0:51
    Isso mesmo. Esta parte é um pouco difícil de entender.
  • 0:51 - 1:01
    É um erro bem longo, mas a falta de um ponte-e-vírgula é simples. Então como sabemos disso, apenas adicionamos ele.
  • 1:01 - 1:06
    E agora tudo funciona.
  • 1:06 - 1:10
    Depois nós aprendemos algo sobre a tela, como esta pequena tela que temos aqui.
  • 1:10 - 1:16
    Ela parece ter 100 pontos de comprimento por 100 pontos de altura.
  • 1:16 - 1:24
    Eu vou explicar um pouco mais sobre a tela neste desenho.
  • 1:24 - 1:35
    Vamos imaginar que esta seja a nossa tela. Ela é feita de vários pequenos pontos (pixels), como este aqui.
  • 1:35 - 1:42
    A razão de usar dois número desta maneira: (50, 50)...
  • 1:42 - 1:52
    É porque cada coluna é numerada de (0, 1, 2, 3, 4, ...)
  • 1:52 - 2:03
    Dependendo do tamanho da sua tela você pode ter 1280 ou talvez 1024 colunas.
  • 2:03 - 2:09
    Estando em um telefone celular você terá menos resolução. Talvez seja 400.
  • 2:09 - 2:20
    O mesmo para as linhas. Aqui nós temos (0, 1, 2, 3, ...) até sei lá. Pode ser 768.
  • 2:20 - 2:33
    Então para desenhar um pixel é preciso saber qual é a coluna e a linha que estamos procurando.
  • 2:33 - 2:42
    Nesse caso seria (3, 3). É por isso que escrevemos esses dois números. Ou talvez (50, 50)...
  • 2:42 - 2:49
    ... desta forma você pode escolher qual pixel da tela você quer iluminar, ou mudar de cor.
  • 2:49 - 2:59
    Ok, então até agora sabemos esses dois comandos: 'point' e 'line'. Isto está meio tedioso por enquanto...
  • 2:59 - 3:06
    ... porque toda vez que rodamos o programa recebemos o mesmo desenho.
  • 3:06 - 3:12
    Seria legal se algo estivesse mudando. Talvez você possa adicionar alguma aleatoriedade.
  • 3:12 - 3:19
    Ao invés de vermos sempre a mesma linha, talvez todas vez que rodarmos o programa ela possa ser um pouca diferente.
  • 3:19 - 3:28
    Então vamos dar uma olhada na referencia. O que temos sobre aleatório ('random' em inglês) ?
  • 3:28 - 3:34
    Apertando ctrl+f, na maioria dos navegadores, você pode procurar por algo na página...
  • 3:34 - 3:38
    ... então nós vamos digitar 'random' aqui. Ok.
  • 3:38 - 3:47
    Eu vejo algumas coisas sobre 'random'. Parece que temos 5 funções que fazem algo.
  • 3:47 - 3:52
    Talvez esta última, vamos dar uma olhada em 'random'.
  • 3:52 - 3:58
    Aqui temos alguns exemplos. Eles provavelmente parecem meio complicados no momento.
  • 3:58 - 4:07
    Vamos ler a descrição. "Gera números aleatórios. Cada vez que a função random() é chamada..."
  • 4:07 - 4:15
    "... ela retorna um valor inesperado dentro do intervalo especificado. Se um parâmetro for passado para a função ...
  • 4:15 - 4:21
    ela irá retornar um número 'float'... " O que é um número 'float'? Nós ainda não sabemos...
  • 4:21 - 4:30
    Mas vamos observar como é usado aqui. 'random(superior)' ou 'random(inferior, superior)'.
  • 4:30 - 4:37
    Aqui diz que você pode usar 'random(5)' e isto irá lhe dar um número entre 0 e 5.
  • 4:37 - 4:40
    Isso parece divertido.
  • 4:40 - 4:44
    Então ao invés de desenhar a mesma coisa o tempo inteiro.
  • 4:44 - 4:52
    Nós podemos desenhar linhas aleatórias. Podemos trocar todos esses números...
  • 4:52 - 4:55
    ... por alguns valores aleatórios.
  • 4:55 - 5:00
    Vamos começar substituindo estes últimos dois '99' por exemplo.
  • 5:00 - 5:10
    Então nós vamos desenhar uma linha a partir de (0, 0), que é o primeiro ponto na tela, até ...
  • 5:10 - 5:17
    ... algum lugar aleatório na tela.
  • 5:17 - 5:22
    Tome cuidado com esses parênteses.
  • 5:22 - 5:33
    Quando você põe o cursor aqui ele ilumina o outro parêntese correspondente.
  • 5:33 - 5:37
    Isso é porque todo parêntese aberto deve ser fechado.
  • 5:37 - 5:50
    Então isso fica 'random(100)' e este de novo 'random(100)' e depois você fecha o parêntese do início.
  • 5:50 - 5:57
    Você pode botar uns espaços a mais para ficar mais claro.
  • 5:57 - 6:02
    Isto está desenhando uma linha do (0, 0) para um ponto aleatório em algum lugar da tela.
  • 6:02 - 6:07
    Vamos rodar o programa e ver o que acontece.
  • 6:07 - 6:13
    Então agora ele começa no (0, 0) e acaba naquele ponto.
  • 6:13 - 6:20
    E se eu rodar de novo? Um resultado diferente.
  • 6:20 - 6:32
    Toda vez que eu rodar esse programa ele desenha uma linha que começa no canto e acaba em algum lugar da tela.
  • 6:32 - 6:39
    Vamos mudar os primeiros dois números com outros aleatórios.
  • 6:39 - 7:04
    Agora vamos desenhar uma linha de uma posição aleatória vertical e horizontal da tela até uma posição x e y aleatória.
  • 7:04 - 7:08
    Oh que conhecidência! Ficou totalmente na vertical!
  • 7:08 - 7:18
    Toda vez que eu rodo o programa ele vai desenhar uma linha aleatória.
  • 7:18 - 7:25
    Uma coisa legal de Processing é que é bem fácil de fazer animações.
  • 7:25 - 7:32
    Eu vou deletar esses pontos aqui e deixar só a linha.
  • 7:32 - 7:42
    Deixe-me lembrar como faço isso... é 'void draw()'.
  • 7:42 - 7:45
    Vamos ver se funciona e depois eu explico o que faz.
  • 7:45 - 7:49
    Uau! Isso é um montão de linhas!
  • 7:49 - 7:53
    Está tudo se tornando preto.
  • 7:53 - 7:56
    O que está acontecendo?
  • 7:56 - 8:03
    Isto é uma coisa legal de Processing. Claro que em outras linguagens você pode fazer gráficos e desenhar...
  • 8:03 - 8:07
    ... mas geralmente vai ser muito mais complicado que isto.
  • 8:07 - 8:14
    Aqui com apenas duas linhas de código nós estamos fazendo esta animação.
  • 8:14 - 8:23
    'draw()' é uma função especial que já vem definida. Ela permite a você rodar alguma coisa continuamente.
  • 8:23 - 8:24
    O que isto significa?
  • 8:24 - 8:31
    Imagine os filmes, que são feitos de imagens. Eles tem várias imagens por segundo, então ...
  • 8:31 - 8:37
    ... quando você mostra várias imagens por segundo você consegue uma ilusão de movimento, animação.
  • 8:37 - 8:42
    Bem, é isto que 'draw' está fazendo aqui.
  • 8:42 - 8:51
    Você só precisa saber que qualquer coisa posta dentro deste 'void draw() {}'...
  • 8:51 - 8:57
    ... todas linhas de código ali dentro vão ser rodadas muitas vezes por segundo.
  • 8:57 - 9:03
    É por isto que ele está desenhando linhas aleatórias muitas vezes por segundo. Então quando você roda o programa ...
  • 9:03 - 9:12
    Porque não apagamos nada, a tela está se tornando lentamente preta.
  • 9:12 - 9:22
    Seria legal se nós pudéssemos apagar a última linha. Então ia parecer que a linha está se movendo.
  • 9:22 - 9:27
    Este será o último comando que eu vou explicar nesse vídeo.
  • 9:27 - 9:31
    Se chama 'background'.
  • 9:31 - 9:42
    Vamos até o manual e consultar ele. Usando 'ctrl+f', procurando por 'background'.
  • 9:42 - 9:53
    Aqui temos alguns exemplos. Parece que 'background(51)' faz um fundo de tela cinza.
  • 9:53 - 9:57
    Se nós usarmos esses números ele faz um fundo amarelo...
  • 9:57 - 10:01
    ... parece até que podemos usar uma imagem como fundo de tela.
  • 10:01 - 10:08
    A função 'background' muda a cor usada para o fundo da tela do Processing.
  • 10:08 - 10:12
    A cor padrão do fundo é cinza claro. Nós já notamos isso.
  • 10:12 - 10:20
    Se nós rodarmos de novo podemos ver ... oh o que foi que eu quebrei?
  • 10:20 - 10:23
    Me desculpem, eu tinha aqui esse 'background()' que ainda não acabei.
  • 10:23 - 10:30
    Ok, vamos rodar. Você pode ver que o fundo é cinza claro.
  • 10:30 - 10:33
    O que mais diz aqui?
  • 10:33 - 10:40
    Na função 'draw' a cor de fundo é usada para apagar a tela no início de cada novo desenho.
  • 10:40 - 10:44
    Isso é exatamente o que queremos agora.
  • 10:44 - 10:50
    Eu gostei deste amarelo, então vou copiar este código.
  • 10:50 - 10:55
    Colar ele aqui ...
  • 10:55 - 10:57
    Então o que acontece agora?
  • 10:57 - 11:04
    Esta função será executada muitas vezes por segundo. A primeira coisa que ela fará é pintar a tela toda de amarelo...
  • 11:04 - 11:09
    Depois vai desenhar uma linha aleatória. Vamos testar.
  • 11:09 - 11:14
    Eu não sei se vocês estão vendo, mas no meu computador está indo super rápido.
  • 11:14 - 11:20
    Desenhando várias linhas malucas. Pulando para cima e para baixo.
  • 11:20 - 11:29
    Eu acho que isto é o suficiente por hoje. Você já pode fazer alguns experimentos.
  • 11:29 - 11:35
    Você pode tentar trocar esta 'line' por alguns 'point' aleatórios.
  • 11:35 - 11:42
    Você também pode tentar trocar esses valores de fundo para ver o que acontece. Tente descobrir cores diferentes.
  • 11:42 - 11:52
    Dando uma olhada na referência você vai perceber que às vezes se usa um número, as vezes se usa três.
  • 11:52 - 11:57
    As vezes até imagens. Então você pode experimentar.
  • 11:57 - 12:05
    Uma coisa que eu espero mostrar a vocês é que é bom experimentar.
  • 12:05 - 12:10
    Procurar no manual, procurar na internet e ficar fazendo mudanças.
  • 12:10 - 12:18
    Geralmente você não vai conseguir estragar nada muito sério brincando aqui com Processing.
  • 12:18 - 12:22
    Ou vai funcionar ou ele vai acusar um erro.
  • 12:22 - 12:25
    E daí você simplesmente acha o erro e o corrige.
Title:
Aprenda Programação 3: Criando uma animação, usando random()
Description:

Uma rápida recapitulação. O que acontece se esquecemos um ponto-e-vírgula no fim da linha? Uma descrição mais detalhada da tela como uma tabela de pontos, com centenas de colunas e linhas. Nós vamos testar a função random() para fazer nosso programa gerar imagens diferentes toda vez que for rodado. Finalmente nós usamos a função draw() e background para animar as linhas e mudar a cor de fundo.

more » « less
Video Language:
English
Duration:
12:25
lfz added a translation

Portuguese subtitles

Revisions