2
respostas

bandeiras

inspirado nos posts dos colegas, criei minhas próprias versões de bandeiras.. bandeira do brasil:

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

<script>

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

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

    pincel.fillStyle = 'yellow';
    pincel.beginPath();
    pincel.moveTo(0, 200);
    pincel.lineTo(300, 0);
    pincel.lineTo(600, 200);
    pincel.lineTo(300, 400);
    pincel.fill();

    pincel.fillStyle = 'darkblue';
    pincel.beginPath();
    pincel.arc(300, 200, 125, 0, 2*3.14);
    pincel.fill();

    pincel.fillStyle = 'white';
    pincel.beginPath();
    pincel.moveTo(180, 160);
    pincel.lineTo(427, 200);
    pincel.lineTo(420, 240);
    pincel.lineTo(172, 200);
    pincel.fill();


</script>

e também a do Orgulho Trans:

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

<script>

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

    pincel.fillStyle = 'lightblue';
    pincel.fillRect(0, 0, 600, 400);
    pincel.fillStyle = 'lightpink';
    pincel.fillRect(0, 80, 600, 240);
    pincel.fillStyle = 'white';
    pincel.fillRect(0, 160, 600, 80);

</script>

modéstia a parte, ficaram muito lindas :3 EEEEE fazendo a segunda, me toquei de uma coisa, por favor me confirmem.. quando eu uso o pincel.fillRect() devo inserir como parâmetro 4 coordenadas (x0, y0, x1, y1), certo?

porém, x1 e y1 não correspondem à posição final em que quero o pincel, mas sim na distância que ele vai percorrer a partir de x0 e y0, certo?

porque a princípio fiz a bandeira do Orgulho Trans assim:

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

<script>

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

    pincel.fillStyle = 'lightblue';
    pincel.fillRect(0, 0, 600, 400);
    pincel.fillStyle = 'lightpink';
    pincel.fillRect(0, 80, 600, 360);
    pincel.fillStyle = 'white';
    pincel.fillRect(0, 160, 600, 240);

</script>

e o resultado é totalmente bugado, assim percebi que os segundos valores (x1 e y1) são, na verdade, o deslocamento, o tamanho do desenho formado pelo retângulo, não sua posição final.. :O

2 respostas

ok, to animado rs me desafiei colocar as duas bandeiras na mesma página e nem foi difícil! justamente por conta das coordenadas se referirem ao deslocamento do retângulo, e não à sua posição final, porque assim só tive que mudar os valores de x iniciais da bandeira Trans.. agora vejo que isso tem potencial de facilitar muito as coisas no futuro

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

<script>

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

    pincel.fillStyle = 'darkgreen'; //fundo da bandeira do brasil
    pincel.fillRect(0, 0, 600, 400);

    pincel.fillStyle = 'yellow'; //losango amarelo
    pincel.beginPath();
    pincel.moveTo(0, 200);
    pincel.lineTo(300, 0);
    pincel.lineTo(600, 200);
    pincel.lineTo(300, 400);
    pincel.fill();

    pincel.fillStyle = 'darkblue'; //círculo azul
    pincel.beginPath();
    pincel.arc(300, 200, 125, 0, 2*3.14);
    pincel.fill();

    pincel.fillStyle = 'white'; //faixa branca
    pincel.beginPath();
    pincel.moveTo(180, 160);
    pincel.lineTo(427, 200);
    pincel.lineTo(420, 240);
    pincel.lineTo(172, 200);
    pincel.fill();

    pincel.fillStyle = 'lightblue'; //fundo da bandeira trans
    pincel.fillRect(600, 0, 600, 400);

    pincel.fillStyle = 'lightpink'; // faixas cor de rosa
    pincel.fillRect(600, 80, 600, 240);

    pincel.fillStyle = 'white'; //faixa branca
    pincel.fillRect(600, 160, 600, 80);

</script>

Uau! Vou comentar o que? ahah...

Parabéns, Caique!

Excelente observação!!!

Você está indo no caminho certo. Não somente aprende, mas também se desafiando!

Continue sempre assim!!!

Está no caminho certo

Um abraço e bons estudos ;-)