1
resposta

Retângulo. Funcionamento não esperado. Módulo 1. Aula 6.

Curso: Lógica de Programação II - Módulo 1 - Aula 6

Descrição do problema: Os retângulos a serem formados dentro da tag "canvas", com o uso do JavaScript, não apresentam o funcionamento esperado. Vide abaixo o código utilizado:

var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');

    pincel.fillStyle = 'lightgrey';
    pincel.fillRect(0, 0, 600, 400);

    pincel.fillStyle = 'green';
    pincel.fillRect(0, 0, 200, 400);

    pincel.fillStyle = 'red';
    pincel.fillRect(400, 0, 200, 400);

O código é o mesmo utilizado na aula pelo professor. Fiz o teste no Visual Studio Code. Abaixo segue print de tela do CodePen:

Print de tela do CodePen

Como é possível constatar no print, o retângulo verde, aparentemente, ocupa um tamanho maior do que o atribuído na função "fillRect" e o retângulo vermelho não aparece.

Aguardo por respostas. Desde já fico grato.

1 resposta

Oi Aleff, tudo bem?

Obrigado pela paciência em aguardar uma resposta!

Entendi sua dúvida. Ao utilizar o VS Code ou o Sublime para escrever os comandos, o resultado com o código abaixo funciona normalmente.

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

<script>

    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');

    pincel.fillStyle = 'lightgrey';
    pincel.fillRect(0, 0, 600, 400);

    pincel.fillStyle = 'green';
    pincel.fillRect(0, 0, 200, 400);

    pincel.fillStyle = 'red';
    pincel.fillRect(400, 0, 200, 400);

</script>

Contudo, o uso do Code Pen torna a escrita do código um pouco diferente, pois neste software há a divisão da linguagem HTML, Javascript e CSS, e cada parte precisa ser escrita em um espaço específico.

No campo referente ao HTML escrevemos:

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

No campo do Javascript escrevemos:

        var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');

    pincel.fillStyle = 'lightgrey';
    pincel.fillRect(0, 0, 600, 400);

    pincel.fillStyle = 'green';
    pincel.fillRect(0, 0, 200, 400);

    pincel.fillStyle = 'red';
    pincel.fillRect(400, 0, 200, 400);

Para que o código seja bem sucedido não há necessidade de escrever de formas diferenciadas, a menos que se queira acrescentar outras especificações estéticas com o uso do campo do CSS.

Na imagem abaixo mostro os resultados obtidos com o uso do Code Pen para escrever o código:

Captura de tela colorida do site Code Pen. Na parte superior, no lado esquerdo há o logotipo do site, ao lado  o nome do documento escrito “Sem Título” e logo abaixo com fonte menor o nome da conta de usuário “Rodrigo Harder”. Na parte superior no lado direito, há um menu com as opções: “Amor”, “Salvar”, “Definições” “Alterar Visualização”, “Fixa item” e “Menu do usuário”.  No lado direito tem três campos: o primeiro é referente a linguagem HTML com o código de criação do canvas escrito, o segundo é referente a linguagem CSS e o terceiro  referente a linguagem Javascript com o código referente a criação de retângulos coloridos. Ao lado direito há a pré-visualização do resultado, que mostra em um espaço branco um retângulo verde, um cinza e outro vermelho um ao lado do outro.

Cada editor de código-fonte tem suas especificidades que precisam ser respeitadas para que o código funcione adequadamente. Além disso, esteja atento à biblioteca de funcionalidades disponíveis que cada software permite utilizar.

Espero ter ajudado. Caso tenha outras dúvidas, estarei à disposição para te auxiliar.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.