2014-11-26 4 views
0

У меня есть такой код:Обработка - не может конвертировать поплавок Int

float[] x = {5,11,17,23,26,23,18,12,7,4,5,6,7,6,3,2,5,5,4,3,3,5,10,18,26,32,26,18,10,5,2,10,12,14,15,9,8,14,13,9,7,5,3,8,17,33,49,32,16,7,3,1,13,16,23,31,26,25,30,22,14,9,7,0,1,9,38,101,38,9,0,1,0,12,17,32,60,89,88,59,30,15,8,6,6,14,19,10,279,10,19,14,8,3,6,10,26,89,360,359,88,25,9,4,2,10,30,82,259,1000,260,82,32,13,5,5,9,26,89,358,359,89,26,9,4,3,6,13,19,9,280,9,20,14,8,3,11,17,31,60,89,89,60,31,16,9,6,0,1,9,38,102,38,9,0,1,0,12,16,23,30,25,25,31,22,14,10,7,3,8,17,33,50,33,17,8,3,1,9,11,13,14,8,9,15,13,10,7,6,5,10,18,27,33,27,18,11,6,3,5,6,6,6,2,3,6,6,5,4,1,5,11,18,24,27,24,18,12,7,3}; 

    void setup(){ 
    size(620,620); 
    float k=1; 
    float q=0; 
    for (float j=0;j<height;j=j+30){ 
     if(k%2!=0){ 
     for(float i=30;i<width;i=i+60){ 
      fill(kolor(x[q])); 
      rect(i,j,20,20); 
      q=q+1; 
     } 
     k++; 
     } else { 
     for(float i=0;i<width;i=i+60){ 
      fill(kolor(x[q])); 
      rect(i,j,20,20); 
      q=q+1; 
      } 
     k++; 
     } 
    } 
    } 

    float kolor(float input){ 
      return map(input,0,1000,0,255); 
    } 

Когда я пытаюсь скомпилировать, я получаю «не может конвертировать поплавок Int» ошибку, связанную с линиями fill(kolor(x[q]));.

Я попытался изменить это на fill((int)kolor(x[q]));.

У вас есть идеи, как исправить это?

+0

Что такое подпись команды заполнения? также любая причина использования индекса массива как float? – SMA

ответ

1

Проблема с строкой fill((int)kolor(x[q]) состоит в том, что x - это массив, и вы можете обращаться к членам массива только с помощью целых чисел, когда вы обращаетесь к нему с помощью q, который является поплавком.

Попробуйте изменить float q = 0; к int q = 0;

Кстати, это выглядит как код Java, это Java?

+0

Обработка очень похожа на Java. – hoosierEE

+0

На самом деле это обработка, но она основана на Java. @klarki, вы гений, спасибо вам большое! :) После изменения указанной линии все в порядке. – sokol07

+0

Хе-хе приветствую :) – klarki

0

Почему вы используете поплавки в первую очередь? Вероятно, вы должны использовать ints, особенно с %.

Here является подписью команды fill(), для тех, кто заинтересован.

Смежные вопросы