我试图在处理中制作图表,但继续获取" ArrayIndexOutOfBounds"错误。我很难理解map()语法的概念,任何人都可以为我清除它吗?我不确定地图中的每个数字应该代表什么(x,y,z,a,b);
String[] name = {
"1st:",
"5th:",
"10th:",
"15th:",
"20th:",
"25th:",
"30th:"
};
int[] temperature = {
81,
82,
84,
85,
87,
88,
90
};
void setup(){
size(200,200);
}
void draw(){
int x=0;
for(int i=0;i<10;i++){
if(mouseX>x && mouseX<=x+40){
fill(255,40,40);
}else{
fill(50);
}
float h = map(temperature[i], 0, 100, 0, 200);
rect(x+4,height-h,32,h);
x+=40;
}
}
答案 0 :(得分:2)
你的数组有7个元素,但你迭代了10次。
for(int i=0;i<10;i++){
...
float h = map(temperature[i], 0, 100, 0, 200);
}
要么用额外的3个元素填充你的数组,要么更好:代替10号,你应该使用i < temperature.length()
作为for循环的条件。