为什么这个画布代码不起作用?

时间:2014-10-13 19:47:39

标签: canvas khan-academy

我一直在使用Khan学院网站上的随机数生成器。这是我输入控制台的代码。我知道那里没有ctx的东西,但代码与使用普通的HTML画布非常相似。我试图让画布显示累积频率的条形图,显示随机数生成器选择每个数字的次数。为此,我试图获取每个数字出现的总次数,然后将其用作图表中每个条形高度的变量。

    var num_1 = 0;
    var num_2 = 0;
    var num_3 = 0;
    var num_4 = 0;
    var num_5 = 0;
    var num_6 = 0;
    var num_7 = 0;
    var num_8 = 0;
    var num_9 = 0;
    var num_10 = 0;

    var draw = function() {      //the draw function just repeats the stuff inside it every second
    var random_num = random(0,10);

    if(random_num === 1){
        num_1 = num_1 + 1;
    }else if(random_num === 2){
        num_2 = num_2 + 1;
    }else if(random_num === 3){
        num_3 = num_3 + 1;
    }else if(random_num === 4){
        num_4 = num_4 + 1;
    }else if(random_num === 5){
        num_5 = num_5 + 1;
    }else if(random_num === 6){
        num_6 = num_6 + 1;
    }else if(random_num === 7){
        num_7 = num_7 + 1;
    }else if(random_num === 8){
        num_8 = num_8 + 1;
    }else if(random_num === 9){
        num_9 = num_9 + 1;
    }else if(random_num === 10){
        num_10 = num_10 + 1;
    }
    fill(122, 116, 116);
    rect(height, width/10, 20, num_1);
    rect(height, width/9, 20, num_2);
    rect(height, width/8, 20, num_3);
    rect(height, width/7, 20, num_4);
    rect(height, width/6, 20, num_5);
    rect(height, width/5, 20, num_6);
    rect(height, width/4, 20, num_7);
    rect(height, width/3, 20, num_8);
    rect(height, width/2, 20, num_9);
    rect(height, width/1, 20, num_10);
 };

1 个答案:

答案 0 :(得分:0)

你的问题很简单。如果随机数完全等于整数,则对if语句做出反应。随机函数选择带有小数的随机数。有两种非常简单的方法可以解决这个问题。

1)

random_num = round(random(0,10));

2)使用>和<在你的if语句中签名。例如:
如果您还不知道,请确保以“> 2”开头。

var random_num = random(1, 11)

- 在这里修改一些代码 -

if (random_num < 2) {(too lazy to copy code in here)}  
else if (random_num < 3) {(again)}  
*ect.*

我个人认为第一个是最简单的。