Цветной прямоугольник Javascript - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь использовать пару циклов for для создания массива 4 на 4 из 16 маленьких прямоугольников, каждый из которых имеет свой цвет.Однако цвета не меняются.

  var x;
  var y;
  var color;
  for (x=0; x < 4; x++){
    for (y=0; y < 4; y++){
      color = 255 - x*20 - y*20;
      ctx.fillStyle = 'rgba(0, 0, color, 1.0)'; 
      ctx.fillRect((x*10), (y*10), 10, 10);
    }
  }

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Вы устанавливаете цвет строки, а не переменную.Вам нужно исправить, как вы строите строку.

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");


var x;
var y;
var color;
for (x = 0; x < 4; x++) {
  for (y = 0; y < 4; y++) {
    color = 255 - x * 20 - y * 20;
    ctx.fillStyle = 'rgba(0, 0, ' + color + ', 1.0)'; 
    ctx.fillRect((x*10), (y*10), 10, 10);
  }
}
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
0 голосов
/ 28 сентября 2018

color - это строка в строке, которую вы указываете fillStyle, а не значение переменной color.Вот исправленная версия:

  var x;
  var y;
  var color;
  for (x=0; x < 4; x++){
    for (y=0; y < 4; y++){
      color = 255 - x*20 - y*20;
      ctx.fillStyle = 'rgba(0, 0, ' + color + ', 1.0)';  // Here
      ctx.fillRect((x*10), (y*10), 10, 10);
    }
  }
...