Olá pessoal, segue uma dica que pode ajudar.
Quando lemos os códigos, podemos pensar que é sempre uma coordenada em referência ao plano. Porém um detalhe. No primeiro ponto de toda figura, a referência é sim o plano. Porém, no segundo ponto em diante a referência é o ponto anterior da figura. Ex: Se você quer fazer um retângulo-quadrado, de 90 x 90, você irá inserir as coordenadas de partida primeiro, que aqui é 50 x 50, e agora vem a sacada, inserindo a próxima coordenada em relação ao PONTO ANTERIOR e não ao PLANO, colocaremos as coordenadas da dimensão da figura sendo 90 x 90, como coloquei na figura 2 abaixo.
Você verá como isso se confirma observando a figura 3, onde o ponto de partida é diferente, mas as dimensões são as mesmas.
Enfim, espero não estar errado, e se funcionou para alguém, escreve ai em baixo hehe.
<canvas width = '600' height = '400'></canvas>
<script>
var tela = document.querySelector('canvas')
var pincel = tela.getContext('2d')
/* figura 1 */
pincel.fillStyle = 'darkgreen';
pincel.fillRect (0, 0, 350, 300);
/*figura 2*/
pincel.fillStyle = 'black';
pincel.fillRect (50, 50, 90, 90);
/*figura 3*/
pincel.fillStyle = 'black';
pincel.fillRect (210, 50, 90, 90);
/*figura 4*/
pincel.fillStyle = 'black';
pincel.fillRect (140, 140, 70, 100);
/*figura 6*/
pincel.fillStyle = 'black';
pincel.fillRect (100, 190, 40, 110);
/*figura 7*/
pincel.fillStyle = 'black';
pincel.fillRect (210, 190, 40, 110);
</script>