Difference between revisions of "Team:NYU Shanghai/Code"
(3 intermediate revisions by the same user not shown) | |||
Line 543: | Line 543: | ||
<br><span></span><span></span> | <br><span></span><span></span> | ||
<br><br><span></span><span></span>//black background | <br><br><span></span><span></span>//black background | ||
− | <br><span></span><span></span | + | <br><span></span><span></span>noStroke(); |
− | <br><span></span><span></span | + | <br><span></span><span></span>fill(0); |
− | <br><span></span><span></span | + | <br><span></span><span></span>rect(-interval, -interval, (grid_size+interval)*grid_num+interval*2, |
− | <br><span></span><span></span | + | <br><span></span><span></span>(grid_size+interval)*grid_num+interval*2); |
<br><span></span><span></span> | <br><span></span><span></span> | ||
− | <br><span></span><span></span | + | <br><span></span><span></span>for (int i=0; i < sequence.length; i++) { |
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span>x=(grid_size+interval)*(i%grid_num); |
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span>y=(grid_size+interval)*(i/grid_num); |
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span>if (sequence[i]) { |
− | <br><span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>fill(red, green, blue); |
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span>} else { |
− | <br><span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>if (select){fill(100);} |
− | <br><span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>else {fill(70);} |
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span>} |
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span>rect(x, y, grid_size, grid_size); |
− | <br><span></span><span></span | + | <br><span></span><span></span>} |
Line 858: | Line 858: | ||
<br><span></span> } | <br><span></span> } | ||
− | < | + | <br><br><span></span><span></span>for (x=0; x<w; x++) { |
− | <span></span><span></span><span></span | + | <br><span></span><span></span><span></span>rsum=gsum=bsum=0; |
− | <span></span><span></span><span></span | + | <br><br><span></span><span></span><span></span>yp=-radius*w; |
− | <span></span><span></span><span></span | + | <br><span></span><span></span><span></span>for (i=-radius; i<=radius; i++) { |
− | <span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>yi=max(0, yp)+x; |
− | <span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>rsum+=r[yi]; |
− | <span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>gsum+=g[yi]; |
− | <span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>bsum+=b[yi]; |
− | <span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>yp+=w; |
− | <span></span><span></span><span></span><br> | + | <br><span></span><span></span><span></span>} |
− | <span></span><span></span><span></span | + | <br><span></span><span></span><span></span>yi=x; |
− | <span></span><span></span><span></span | + | <br><span></span><span></span><span></span>for (y=0; y < h; y++) { |
− | <span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>pix[yi]=0xff000000 | (dv[rsum]<< 16) | (dv[gsum]<< 8) | dv[bsum]; |
− | <span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>if (x==0) { |
− | <span></span><span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span><span></span>vmin[y]=min(y+radius+1, hm)*w; |
− | <span></span><span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span><span></span>vmax[y]=max(y-radius, 0)*w; |
− | <span></span><span></span><span></span><span></span><br> | + | <br><span></span><span></span><span></span><span></span>} |
− | <span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>p1=x+vmin[y]; |
− | <span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>p2=x+vmax[y]; |
− | < | + | <br><br><span></span><span></span><span></span><span></span>\rsum+=r[p1]-r[p2]; |
− | <span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>gsum+=g[p1]-g[p2]; |
− | <span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>bsum+=b[p1]-b[p2]; |
− | < | + | <br><br><span></span><span></span><span></span><span></span>yi+=w; |
− | <span></span><span></span><span></span><br> | + | <br><span></span><span></span><span></span>} |
− | <span></span><span></span><br> | + | <br><span></span><span></span>} |
− | <span></span | + | <br><span></span>} |
<br><br><span></span>void save_blob() { | <br><br><span></span>void save_blob() { | ||
Line 891: | Line 891: | ||
<br><br><span></span><span></span>Blob b; | <br><br><span></span><span></span>Blob b; | ||
<br><span></span><span></span>blobs=new float[theBlobDetection.getBlobNb ()][4]; | <br><span></span><span></span>blobs=new float[theBlobDetection.getBlobNb ()][4]; | ||
− | <br><span></span><span></span>for (int n=0; n<theBlobDetection.getBlobNb (); n++) | + | <br><span></span><span></span>for (int n=0; n < theBlobDetection.getBlobNb (); n++) |
<br><span></span><span></span>{ | <br><span></span><span></span>{ | ||
<br><span></span><span></span><span></span>b=theBlobDetection.getBlob(n); | <br><span></span><span></span><span></span>b=theBlobDetection.getBlob(n); | ||
<br><span></span><span></span><span></span>if (dist(block_size/2,block_size/2,b.xMin*block_size, | <br><span></span><span></span><span></span>if (dist(block_size/2,block_size/2,b.xMin*block_size, | ||
− | <br><span></span><span></span><span></span><span></span>b.yMin*block_size)<radius | + | <br><span></span><span></span><span></span><span></span>b.yMin*block_size)< radius |
− | <br><span></span><span></span><span></span>&&b.w*block_size>5&&b.w*block_size<25&& | + | <br><span></span><span></span><span></span>&&b.w*block_size>5&&b.w*block_size< 25&& |
− | <br><span></span><span></span><span></span>b.h*block_size>5&&b.h*block_size<25){ | + | <br><span></span><span></span><span></span>b.h*block_size>5&&b.h*block_size< 25){ |
<br><span></span><span></span><span></span>blobs[n][0]=b.xMin*block_size; | <br><span></span><span></span><span></span>blobs[n][0]=b.xMin*block_size; | ||
<br><span></span><span></span><span></span>blobs[n][1]=b.yMin*block_size; | <br><span></span><span></span><span></span>blobs[n][1]=b.yMin*block_size; | ||
Line 908: | Line 908: | ||
<br><br><span></span>void convert() { | <br><br><span></span>void convert() { | ||
<br><span></span><span></span>int row, col, i; | <br><span></span><span></span>int row, col, i; | ||
− | <br><span></span><span></span>for (int n=0; n<sequence.length; n++) { | + | <br><span></span><span></span>for (int n=0; n< sequence.length; n++) { |
<br><span></span><span></span><span></span>sequence[n]=false; | <br><span></span><span></span><span></span>sequence[n]=false; | ||
<br><span></span><span></span>} | <br><span></span><span></span>} | ||
− | <br><span></span><span></span>for (int n=0; n<blobs.length; n++) { | + | <br><span></span><span></span>for (int n=0; n< blobs.length; n++) { |
<br><span></span><span></span><span></span>row=int(blobs[n][0]+blobs[n][2]*0.5)/grid_size; | <br><span></span><span></span><span></span>row=int(blobs[n][0]+blobs[n][2]*0.5)/grid_size; | ||
<br><span></span><span></span><span></span>col=int(blobs[n][1]+blobs[n][3]*0.5)/grid_size; | <br><span></span><span></span><span></span>col=int(blobs[n][1]+blobs[n][3]*0.5)/grid_size; | ||
<br><span></span><span></span><span></span>i=row+col*grid_num; | <br><span></span><span></span><span></span>i=row+col*grid_num; | ||
− | <br><span></span><span></span>if (i>0&&i<grid_num*grid_num) { | + | <br><span></span><span></span>if (i>0&&i< grid_num*grid_num) { |
<br><span></span><span></span><span></span><span></span>sequence[i]=true; | <br><span></span><span></span><span></span><span></span>sequence[i]=true; | ||
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span>} |
<br><span></span><span></span>} | <br><span></span><span></span>} | ||
<br><span></span>} | <br><span></span>} | ||
Line 931: | Line 931: | ||
<br><span></span><span></span>rect(-interval,-interval,(grid_size+interval)*grid_num+interval*2, | <br><span></span><span></span>rect(-interval,-interval,(grid_size+interval)*grid_num+interval*2, | ||
<br><span></span><span></span>(grid_size+interval)*grid_num+interval*2); | <br><span></span><span></span>(grid_size+interval)*grid_num+interval*2); | ||
− | <br><span></span><span></span>for (int i=0; i<sequence.length; i++) { | + | <br><span></span><span></span>for (int i=0; i< sequence.length; i++) { |
<br><span></span><span></span><span></span>x=(grid_size+interval)*(i%grid_num); | <br><span></span><span></span><span></span>x=(grid_size+interval)*(i%grid_num); | ||
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span>y=(grid_size+interval)*(i/grid_num); |
− | <br><br><span></span><span></span><span></span><span></span | + | <br><br><span></span><span></span><span></span><span></span>noStroke(); |
<span></span><span></span><span></span> | <span></span><span></span><span></span> | ||
− | <br><br><span></span><span></span><span></span | + | <br><br><span></span><span></span><span></span>if (sequence[i]) { |
<br><span></span><span></span><span></span><span></span><br>fill(avg_color[0], avg_color[1], avg_color[2]); | <br><span></span><span></span><span></span><span></span><br>fill(avg_color[0], avg_color[1], avg_color[2]); | ||
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span>} else { |
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span> fill(70); |
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span>} |
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span>rect(x, y, grid_size, grid_size); |
− | <br><span></span><span></span | + | <br><span></span><span></span>} |
− | <br><span></span><span></span | + | <br><span></span><span></span>popMatrix(); |
<br><span></span><br>} | <br><span></span><br>} | ||
<br><br><span></span><br><br>void glow(int n) { | <br><br><span></span><br><br>void glow(int n) { | ||
− | <br><span></span><span></span | + | <br><span></span><span></span>pushMatrix(); |
− | <br><span></span><span></span | + | <br><span></span><span></span>translate(a, b); |
− | <br><span></span><span></span | + | <br><span></span><span></span>rectMode(CORNER); |
− | <br><span></span><span></span | + | <br><span></span><span></span>for (int m=0; m< grid_num; m++) { |
− | <br><span></span><span></span><span></span | + | <br><span></span><span></span><span></span>if (sequence[m*grid_num+n]) { |
− | <br><span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span>for (int p=-1; p< 2; p++) { |
− | <br><span></span><span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span><span></span>for (int q=-1; q< 2; q++) { |
− | <br><span></span><span></span><span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span><span></span><span></span>if (n+p>=0&&n+p< grid_num&&m+q>=0&& |
− | <br><span></span><span></span><span></span><span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span><span></span><span></span><span></span>m+q< grid_num) { |
− | <br><span></span><span></span><span></span><span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span><span></span><span></span><span></span>noStroke(); |
− | <br><br><span></span><span></span><span></span><span></span><span></span><span></span><span></span | + | <br><br><span></span><span></span><span></span><span></span><span></span><span></span><span></span>fill(255, 255, 255, 20); |
− | <br><span></span><span></span><span></span><span></span><span></span><span></span><span></span | + | <br><span></span><span></span><span></span><span></span><span></span><span></span><span></span>rect((n+p)*(interval+grid_size), (m+q)*(interval+grid_size), |
<br><br><span></span><span></span><span></span><span></span><span></span><span></span><span></span>grid_size, grid_size); | <br><br><span></span><span></span><span></span><span></span><span></span><span></span><span></span>grid_size, grid_size); | ||
<br><span></span><span></span><span></span><span></span><span></span><span></span>} | <br><span></span><span></span><span></span><span></span><span></span><span></span>} | ||
Line 977: | Line 977: | ||
<br><span></span><span></span>float noteVal; | <br><span></span><span></span>float noteVal; | ||
<br><span></span><span></span>float[] noteVals=new float[0]; | <br><span></span><span></span>float[] noteVals=new float[0]; | ||
− | <br><span></span><span></span>for (int i=0; i<grid_num; i++) { | + | <br><span></span><span></span>for (int i=0; i< grid_num; i++) { |
<br> <span></span><span></span><span></span>if (sequence[i*grid_num+n]) { | <br> <span></span><span></span><span></span>if (sequence[i*grid_num+n]) { | ||
<br><span></span><span></span><span></span><span></span>noteVal = float(notes[i]); | <br><span></span><span></span><span></span><span></span>noteVal = float(notes[i]); |
Latest revision as of 15:16, 18 September 2015