Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

6 - Tem espaço para círculo também?

Apesar do professor mencionar que não é preciso se preocupar com cálculo agora, gostaria de entender o seguinte no círculo:

  • depois do raio 50, por que foi colocado, 0, 2 e multiplicou por 3.14. pincel.arc(300, 200, 50, 0, 2 * 3.14). Obrigada.
2 respostas
solução!

Deise,

no contexto, na instrução do professor:

pincel.arc(x, y, r, start, end);
  • x e y são as coordenadas do centro da circunferência;
  • r é o raio;
  • start é o ângulo inicial;
  • end é o ângulo final.

Na sua pergunta, start é zero, e end é 2*número Pi (π, aprox. 3.14 ou Math.PI em javascript).

Entenda que os ângulos inicial e final indicam onde vai começar e terminar a desenhar sua circunferência:

  • Se start for zero, a circunferência vai começar a ser desenhada na posição 3 horas de um relógio;
  • se start for 0.5 * 3.14 a circunferência vai começar a ser desenhada na posição 6 horas de um relógio;
  • se start for 1 * 3.14 a circunferência vai começar a ser desenhada na posição 9 horas de um relógio;
  • se start for 1.5 * 3.14 a circunferência vai começar a ser desenhada na posição 12 horas de um relógio;
  • se start for zero ou 2 * 3.14 a circunferência vai começar a ser desenhada na posição 3 horas de um relógio;

Os mesmos pontos valem para o ângulo final, e podem ser usados quaisquer valores, quebrados também.

No exemplo do professor, a circunferência será desenhada no sentido horário.


  • Na matemática, uma circunferência completa tem perímetro de comprimento 2 * 3.14 * raio

Brinque com o código abaixo. Altere os valores de start, end e sentido para ver como se comporta seu desenho, e para entender na prática a instrução.

Bons estudos!

<canvas width="600" height="400"></canvas>

<script>

    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');
    var x = 300;    //centro 
    var y = 200;
    var raio = 50;  //raio

    var start = 1 ;    //zero é "3 horas", 0.5 é "6 horas", 1 é "9 horas", 1.5 é "12 horas", 2 é "3 horas"
    var end = 2;
    var sentido = false;    //false é horário, true é anti-horário. Se omitir no código, a instrução entende que vale 'false' - sentido horário.

    pincel.strokeStyle = 'red';
    pincel.beginPath();
    pincel.arc(x, y, raio, start * Math.PI, end * Math.PI, sentido);
    pincel.stroke();

</script>

Excelente explicação. Muito obrigada.