скажите, какова роль первого числа (-1) в "fill (-1, x)" при обработке? - PullRequest
0 голосов
/ 07 мая 2018

подскажите, пожалуйста, какова роль первого числа (-1) в приведенном ниже коде при обработке?

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

"import ddf.minim.*;
 import ddf.minim.analysis.*;
 Minim minim;
 BeatDetect beat;
 AudioInput player;
 int  r = 200;
 float rad = 70;
 void setup()
 {
 size(displayWidth, displayHeight);
  minim = new Minim(this);
 player = minim.getLineIn();
 beat = new BeatDetect();
 background(-1);
   }

   void draw()
  { 
  beat.detect(player.mix);
   fill(#1A1F18, 20);
    noStroke();
  rect(0, 0, width, height);
  translate(width/2, height/2);
    noFill();
   fill(-1, 200);
   if (beat.isOnset()) rad = rad*1.1;
    else rad = 70;
    ellipse(0, 0, 2*rad, 2*rad);
     stroke(-1, 50);
       int bsize = player.bufferSize();
       for (int i = 0; i < bsize - 1; i+=5)
        {
      float x = (r)*cos(i*2*PI/bsize);
       float y = (r)*sin(i*2*PI/bsize);
        float x2 = (r + player.left.get(i)*1000)*cos(i*2*PI/bsize);
            line(x, y, x2, y2);
         }

          }"

С наилучшими пожеланиями

1 Ответ

0 голосов
/ 07 мая 2018

Это то же самое, что и fill(255,50), просто на один символ меньше, чтобы набрать fill(-1,50); (воспринимайте это как сокращение).

Тип color сохраняется как целое число без знака .

Вот основной набросок, иллюстрирующий эту точку:

void setup(){
  println(color(254,254,254));
  println(color(255,254,254));
  println(color(255,255,254));
  println(color(255,255,255));
  println(color(255));

}
void draw(){
  //same as fill(255,50);
  fill(-1,50);
  rect(0,0,width,height);
  line(mouseX,mouseY,pmouseX,pmouseY);
}

Обратите внимание на значения, напечатанные на консоли. Также обратите внимание, когда вы двигаете мышь, вы видите следы. Это потому, что нарисован белый (color(255) или color(-1)) прямоугольник с альфа-каналом, установленным на 50, только частично очищающий буфер.

...