我应该使用array中的元素绘制2D条形图。 我必须根据值的总数和窗口的总宽度选择条形宽度;并根据其特定值和所有元素的最大值来计算钢筋高度,要考虑到最大值元素的钢筋高度将成为窗口的高度。 到目前为止,这是我的代码,但没有得到想要的结果。
float[] values = {25.0, 45.0, 5.0, 15.0, 10.0};
void setup() {
size(400,400);
}
void draw() {
background(0);
// draw axes (relative to screen edges)
stroke(255,0,0);
strokeWeight(5);
line(0,height,width,height);
line(0,0,0,height);
barChart(values);
}
void barChart(float[] data){
for (int x=0; x<400; x+=80) {
for (int i=0; i<data.length; i++){
fill(20,128,55);
rect(x,350,80,(data[i]/100)*400); //x,y,width,height
}
}
}
答案 0 :(得分:1)
您已经写过,条形宽度应该是“值总数和窗口总宽度的函数”,但是现在它是一个常数(80)。
您还写道,钢筋高度应是其特定值和所有元素最大值的函数,要考虑到最大值元素的钢筋高度将为窗口”,但现在仅取决于数据值。
因此,当然,代码 无法完成您期望的工作,您需要将这些常量更改为基于这些变量的表达式。请执行此操作,如果仍然得到意外的结果,请写下实际执行的操作,预期的输出以及结果的不同。