Гистограмма в обработке, я не могу получить правильный размер - PullRequest
0 голосов
/ 11 апреля 2019

Я должен нарисовать двухмерную гистограмму, используя элементы из массива. Я должен выбрать ширину бара в зависимости от общего количества значений и общей ширины окна; и высота стержня в зависимости от его конкретного значения и максимального значения всех элементов, принимая во внимание, что высота стержня элемента максимального значения будет являться высотой окна. Пока это мой код, и я не получаю желаемого результата.

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
      }
    }

}


1 Ответ

1 голос
/ 11 апреля 2019

Вы написали, что ширина полосы должна быть «функцией от общего количества значений и общей ширины окна», но сейчас она является константой (80).

Вы также пишете, что высота стержня должна быть «функцией его конкретного значения и максимального значения всех элементов, принимая во внимание, что высота стержня элемента максимального значения будет высотой окно "но сейчас это зависит только от значения данных.

Так что, конечно, код не может делать то, что вы ожидаете, вам нужно изменить эти константы на выражения, основанные на этих переменных. Пожалуйста, сделайте это, и если вы все еще получаете неожиданные результаты, напишите, что именно вы сделали, какой результат вы ожидаете и чем отличается результат.

...