< Return to Video

Resizing shapes with variable expressions

  • 0:00 - 0:02
    Estamos de volta com Winston.
  • 0:02 - 0:06
    Agora temos ambas as variáveis X e Y para
  • 0:06 - 0:07
    a posição do Winston.
  • 0:07 - 0:09
    Então podemos movê-lo para os lados,
  • 0:10 - 0:12
    para cima e para baixo, wooo!
  • 0:12 - 0:13
    Muito bom.
  • 0:14 - 0:16
    Bom, vamos redefinir essas variáveis
  • 0:16 - 0:19
    para 200 e 200
  • 0:19 - 0:22
    e recapitular como este programa funciona.
  • 0:23 - 0:26
    Então, aqui temos a variável “eyeSize”,
  • 0:26 - 0:28
    é usada pra controlar o tamanho dos olhos,
  • 0:28 - 0:30
    pois ambos têm 40 pixels de largura
  • 0:30 - 0:32
    e 40 pixels de altura.
  • 0:32 - 0:35
    Também temos estas variáveis X e Y
  • 0:35 - 0:39
    e elas definem o centro da face.
  • 0:40 - 0:41
    Podem vê-las usadas
  • 0:41 - 0:43
    no comando desta elipse aqui
  • 0:43 - 0:45
    que desenha o grande círculo amarelo.
  • 0:46 - 0:47
    E aqui embaixo,
  • 0:47 - 0:49
    para os olhos,
  • 0:49 - 0:50
    X e Y são usados novamente.
  • 0:51 - 0:52
    E aqui,
  • 0:52 - 0:54
    os olhos são posicionados
  • 0:54 - 0:56
    de acordo com o centro do rosto.
  • 0:56 - 0:58
    Então, este aqui tem
  • 0:58 - 0:59
    cinquenta pixels
  • 0:59 - 1:01
    à esquerda do centro,
  • 1:02 - 1:03
    e este outro tem cem pixels
  • 1:03 - 1:05
    à direita do centro
  • 1:05 - 1:08
    Okay, muito bem
  • 1:08 - 1:09
    é a razão pela qual podemos
  • 1:09 - 1:11
    mover Winston para cima e para baixo.
  • 1:11 - 1:13
    Agora, eu quero poder controlar
  • 1:13 - 1:15
    mais coisas no rosto do Winston
  • 1:15 - 1:17
    usando variáveis.
  • 1:17 - 1:18
    Então eu quero descobrir
  • 1:18 - 1:19
    o que mais no programa podemos
  • 1:19 - 1:21
    controlar usando variáveis.
  • 1:21 - 1:21
    Para isso,
  • 1:21 - 1:23
    eu irei em
  • 1:23 - 1:24
    cada linha de código
  • 1:24 - 1:25
    e procurar pelo que chamamos de
  • 1:25 - 1:27
    números "hard-coded"
  • 1:28 - 1:29
    Esses números são simplesmente
  • 1:29 - 1:31
    números literais, e não
  • 1:31 - 1:33
    variáveis ou dependentes de variáveis
  • 1:34 - 1:35
    Vamos começar aqui
  • 1:35 - 1:37
    na primeira elipse,
  • 1:38 - 1:39
    nós temos 300 e 300
  • 1:39 - 1:41
    para a largura e altura.
  • 1:42 - 1:44
    Estes são apenas números literais
  • 1:44 - 1:45
    então vamos criar
  • 1:45 - 1:46
    uma variável para eles,
  • 1:46 - 1:48
    chamada "faceSize"
  • 1:49 - 1:50
    e dar a ela um valor de 300
  • 1:50 - 1:53
    Agora vamos escrever "faceSize"...
  • 1:54 - 1:55
    faceSize...
  • 1:56 - 1:57
    Okay, continuando
  • 1:57 - 1:58
    e pulando as cores
  • 1:58 - 2:00
    agora os comandos da elipse são ambos...
  • 2:00 - 2:02
    Eles são variáveis ou
  • 2:02 - 2:03
    dependentes de variáveis
  • 2:03 - 2:04
    Então, irei deixá-los
  • 2:04 - 2:05
    assim por enquanto.
  • 2:05 - 2:07
    Temos também o comando da boca,
  • 2:07 - 2:09
    eles são dependentes de X e Y,
  • 2:09 - 2:10
    mas estes aqui
  • 2:10 - 2:12
    são apenas números literais
  • 2:13 - 2:15
    150 e 150
  • 2:15 - 2:16
    Então iremos chamá-lo
  • 2:16 - 2:19
    "mouthSize", esse é um bom nome,
  • 2:19 - 2:20
    que recebe 150.
  • 2:22 - 2:25
    Vamos substituir estes por "mouthSize"
  • 2:25 - 2:27
    e "mouthSize".
  • 2:28 - 2:29
    ótimo, agora
  • 2:29 - 2:31
    temos os tamanhos das formas
  • 2:31 - 2:33
    definidos por variáveis, no topo
  • 2:33 - 2:35
    que significa que é realmente fácil
  • 2:35 - 2:36
    para nós mudarmos os tamanhos,
  • 2:36 - 2:37
    dessa forma, tipo
  • 2:37 - 2:39
    Wooo! Winston está com fome
  • 2:39 - 2:41
    e... Você sabe,
  • 2:41 - 2:43
    quando Winston fica com fome
  • 2:43 - 2:44
    ele come muitos donuts
  • 2:44 - 2:46
    e acaba enorme.
  • 2:46 - 2:48
    Certo,
  • 2:48 - 2:49
    mas tem algo
  • 2:49 - 2:51
    que eu não gosto no programa agora.
  • 2:52 - 2:59
    Se eu diminuo o tamanho do rosto
  • 2:59 - 3:01
    ele começa a ficar engraçado
  • 3:01 - 3:03
    por que os olhos e a boca
  • 3:03 - 3:05
    saem do rosto
  • 3:05 - 3:07
    e num determinado ponto nem
  • 3:07 - 3:08
    parece mesmo que estão
  • 3:08 - 3:09
    conectados à ele
  • 3:09 - 3:11
    ou nem é um mais rosto, é?
  • 3:12 - 3:14
    Então o que eu quero que aconteça
  • 3:14 - 3:16
    é que quando eu mude o valor de “faceSize”
  • 3:16 - 3:18
    eu quero que os olhos e a boca...
  • 3:18 - 3:22
    Quero que seus tamanhos mudem igualmente,
  • 3:22 - 3:24
    então se eu diminuir faceSize pela metade,
  • 3:24 - 3:27
    eu quero que a boca diminua igualmente.
  • 3:27 - 3:29
    Isso significa que
  • 3:30 - 3:33
    eu quero calcular mouthSize e eyeSize
  • 3:33 - 3:36
    como frações de faceSize.
  • 3:37 - 3:40
    Vamos redefinir essas variáveis
  • 3:40 - 3:42
    e eu mostro o que quero dizer.
  • 3:42 - 3:44
    Vamos começar com mouthSize
  • 3:44 - 3:45
    Agora,
  • 3:45 - 3:50
    faceSize recebe 300 e mouthSize recebe 150
  • 3:50 - 3:52
    Então se pensamos neles
  • 3:52 - 3:53
    como valores relacionados,
  • 3:53 - 3:56
    podemos dizer que faceSize é o dobro
  • 3:56 - 3:58
    do tamanho de mouthSize,
  • 3:58 - 4:00
    ou que mouthSize é a metade
  • 4:00 - 4:01
    de faceSize,
  • 4:01 - 4:04
    e podemos escrever isso em código, assim
  • 4:04 - 4:08
    Um meio vezes faceSize.
  • 4:08 - 4:10
    Okay, essa linha de código diz
  • 4:10 - 4:12
    que pegamos o valor de faceSize,
  • 4:12 - 4:13
    multiplicamos por um meio
  • 4:13 - 4:15
    e armazenamos o resultado em mouthSize.
  • 4:16 - 4:17
    Então se mudarmos isso aqui,
  • 4:18 - 4:20
    isso calcularia quanto metade daquilo vale
  • 4:20 - 4:22
    e isso seria o valor de mouthSize.
  • 4:22 - 4:24
    Perfeito! É o que nós queremos
  • 4:25 - 4:27
    Então agora eyeSize,
  • 4:27 - 4:29
    faceSize é 300
  • 4:29 - 4:31
    e eyeSize é 40,
  • 4:31 - 4:33
    então queremos que isso seja
  • 4:33 - 4:37
    quarenta trezentos avos de faceSize
  • 4:37 - 4:39
    o que é, vamos ver...
  • 4:39 - 4:41
    Quatro sobre trinta, que podemos
  • 4:41 - 4:44
    simplificar para dois quinze avos,
  • 4:44 - 4:46
    então vamos dizer
  • 4:46 - 4:50
    dois quinze avos vezes faceSize
  • 4:50 - 4:51
    A propósito,
  • 4:51 - 4:52
    se você é novo em frações
  • 4:52 - 4:54
    e matemática é complicado pra você,
  • 4:54 - 4:56
    você pode aprender mais sobre frações
  • 4:56 - 4:58
    na Khan Academy
  • 4:58 - 5:00
    e retornar aqui quando você
  • 5:00 - 5:00
    estiver pronto.
  • 5:00 - 5:02
    Aqui, vejam
  • 5:03 - 5:04
    Okay,
  • 5:04 - 5:06
    vamos tentar dimensionar a face novamente
  • 5:07 - 5:08
    Haha! Dêem uma olhada
  • 5:08 - 5:10
    A boca e os olhos redimensionam
  • 5:10 - 5:12
    proporcionalmente ao rosto.
  • 5:12 - 5:13
    Mas você provavelmente notou
  • 5:13 - 5:15
    algo errado,
  • 5:15 - 5:17
    os olhos e a boca
  • 5:17 - 5:19
    ainda estão pulando para fora do rosto,
  • 5:19 - 5:21
    mesmo que ambos estejam
  • 5:21 - 5:23
    redimensionados adequadamente.
  • 5:23 - 5:25
    Isso acontece porque ainda temos
  • 5:25 - 5:27
    alguns números "hard-coded"
  • 5:27 - 5:28
    nos nossos comandos da elipse.
  • 5:28 - 5:30
    Alguns números que na verdade deveriam
  • 5:30 - 5:33
    ser frações ou variáveis.
  • 5:33 - 5:35
    Aqui, vou mostrá-los...
  • 5:35 - 5:38
    Então, para as elipses dos olhos,
  • 5:38 - 5:41
    X menos cinquenta para a posição X,
  • 5:41 - 5:43
    significa que isso será sempre X menos 50
  • 5:43 - 5:45
    mesmo que façamos faceSize
  • 5:45 - 5:47
    menor do que 50 pixels,
  • 5:47 - 5:48
    e isso não faz sentido
  • 5:48 - 5:50
    pois quer dizer que o olho esquerdo
  • 5:50 - 5:51
    não estará
  • 5:51 - 5:52
    mais no rosto.
  • 5:52 - 5:55
    Então isso deve ser X menos uma fração
  • 5:55 - 5:57
    o tamanho da nossa face,
  • 5:57 - 5:59
    e nós podemos descobrir a fração
  • 5:59 - 6:00
    da mesma maneira.
  • 6:00 - 6:04
    50 relativo ao 300 original,
  • 6:04 - 6:08
    então 50 sobre 300, 5 sobre 30, 1 sobre 6,
  • 6:09 - 6:12
    então, 1/6 vezes faceSize
  • 6:12 - 6:14
    e podemos ver outros 50 aqui
  • 6:14 - 6:16
    podemos fazer a mesma coisa,
  • 6:16 - 6:17
    a mesma expressão,
  • 6:17 - 6:19
    aqui temos 100 sobre 300,
  • 6:19 - 6:21
    isso será
  • 6:21 - 6:23
    um terço vezes faceSize,
  • 6:23 - 6:25
    isso é sessenta,
  • 6:25 - 6:26
    esse aqui é
  • 6:26 - 6:29
    um quinto vezes faceSize,
  • 6:29 - 6:32
    e aqui tem outro cinquenta,
  • 6:32 - 6:34
    então um sexto novamente,
  • 6:34 - 6:36
    e quarenta,
  • 6:36 - 6:38
    é o que descobrimos acima
  • 6:38 - 6:40
    dois sobre quinze,
  • 6:40 - 6:45
    então dois quinze avos vezes faceSize.
  • 6:45 - 6:48
    Bem, então vamos tentar novamente...
  • 6:48 - 6:49
    Oh, vejam só!
  • 6:49 - 6:51
    Olhem isso, está lindo!
  • 6:51 - 6:52
    Muito bem
  • 6:53 - 6:55
    Certo, então vamos recapitular:
  • 6:55 - 6:56
    nós criamos esta variável
  • 6:56 - 6:58
    que armazenou o tamanho da face,
  • 6:58 - 7:00
    e isso armazena um número;
  • 7:00 - 7:02
    Então temos essas variáveis, mouthSize
  • 7:02 - 7:03
    e eyeSize
  • 7:03 - 7:06
    e nós os calculamos baseados em frações
  • 7:06 - 7:07
    de faceSize
  • 7:07 - 7:08
    para termos certeza
  • 7:08 - 7:10
    que seus valores sempre mudam
  • 7:10 - 7:12
    baseados neste valor inicial
  • 7:13 - 7:15
    então todos os deslocamentos são
  • 7:15 - 7:17
    calculados com base em faceSize
  • 7:17 - 7:18
    para ter certeza que a posição
  • 7:18 - 7:20
    dentro dos rostos mudam
  • 7:20 - 7:22
    quando faceSize muda.
  • 7:22 - 7:23
    Wooo! Muito bom.
  • 7:23 - 7:25
    Então agora que entendemos
  • 7:25 - 7:26
    como criar variáveis
  • 7:26 - 7:28
    dependentes do valor de outras variáveis,
  • 7:28 - 7:30
    podemos fazer muito com nossos programas.
  • 7:30 - 7:32
    Vamos celebrar fazendo o Winston
  • 7:32 - 7:37
    grande! Yeah, vai Winston!
Title:
Resizing shapes with variable expressions
Description:

more » « less
Video Language:
English
Duration:
07:37

Portuguese subtitles

Revisions