If you're seeing this message, it means we're having trouble loading external resources on our website.

Se você está atrás de um filtro da Web, certifique-se que os domínios *.kastatic.org e *.kasandbox.org estão desbloqueados.

Conteúdo principal

Escala

O transformação final do sistema de coordenadas é a escala, que altera o tamanho do sistema. Dê uma olhada nesse programa, que desenha um quadrado, e então escala o plano para duas vezes seu tamanho normal, e o desenha novamente.
Primeiro, você pode ver que o quadrado parece ter se movido. Mas não se moveu, é claro. Seu canto superior esquerdo ainda está em (20,20) no sistema de coordenadas, mas agora esse ponto está duas vezes mais longe da origem do que estava no sistema de coordenadas original.
Se você quisesse que o quadrado maior começasse no mesmo canto que o quadrado menor, você poderia movê-lo primeiro, e depois fazer a escala:
Você também pode perceber que, em ambos os programas, as retas são mais grossas nos quadrados maiores. Isso não é uma ilusão de ótica — as retas de fato estão duas vezes mais grossas, porque o sistema de coordenadas foi escalado para ter duas vezes seu tamanho. Você poderia alterar strokeWeight() de forma explícita para resolver isso, ou evitar o uso de scale() junto com ele.
O comando scale() aceita, de forma opcional, dois parâmetros ao invés de apenas um, então você pode escalar as dimensões x e y separadamente. Tente usar scale(3.0, 0.5) no programa acima para deixar a dimensão x três vezes maior que seu tamanho normal, e a dimensão y com metade do seu tamanho normal.

Esse artigo é ma adaptação de Transformações 2D, de J David Eisenberg, usado sob uma licença Creative Commons Attribution-NonCommercial-ShareAlike.

Quer participar da conversa?

  • Avatar male robot donald style do usuário Hermenegildo
    Como assim repetitivo, a cada aula é uma coisa nova, tente pegar tudo de uma só vez, você não aprenderá nada, o que você vai repetindo, vai aprendendo de verdade, aposto que você já sabe o que é fill(), var, rect()... mas talvez outras coisas você não tenha tanto conhecimento assim.
    (5 votos)
    Avatar Default Khan Academy avatar do usuário
  • Avatar spunky sam blue style do usuário Diego Pinheiro
    No desafio a seguir eu fiz
    while(scaleF>0.0){
    pushMatrix();
    translate(200,200);
    scale(2.0);
    scaleF-=2;
    drawBlackCircle(10);
    popMatrix();
    pushMatrix();
    translate(200,200);
    scale(2.0);
    scaleF-=2;
    drawWhiteCircle(10);
    popMatrix();
    Isso na segunda etapa, mas não tem mensagem de erro e nem mensagem laranja, mas eu não tenho permissão para continuar.
    (2 votos)
    Avatar Default Khan Academy avatar do usuário
    • Avatar male robot donald style do usuário Hermenegildo
      while (scaleF > 0.0){
      //black circles
      pushMatrix();
      translate(width/2,height/2);
      scale(scaleF);
      scaleF-= decreaseAmt;
      drawBlackCircle(diameter);
      popMatrix();

      pushMatrix();
      translate(width/2,height/2);
      scale(scaleF);
      scaleF-= decreaseAmt;
      drawWhiteCircle(diameter);
      popMatrix();
      }
      (1 voto)
  • Avatar leafers seed style do usuário Paulo Souza
    éeee por que os números tem q ser tão repetitivos
    (1 voto)
    Avatar Default Khan Academy avatar do usuário
  • Avatar male robot donald style do usuário Ildebrando Silva
    Também não consigo realizar os desafios. As dicas realmente estão diferentes... está bem dificil, mas vou continuar.
    (0 votos)
    Avatar Default Khan Academy avatar do usuário
Você entende inglês? Clique aqui para ver mais debates na versão em inglês do site da Khan Academy.