2017-02-07 62 views
-1

我正在使用處理和最小庫,並嘗試爲實時音頻輸入創建3D實時可視化。處理節拍檢測

我已經繪製了盒子,並正在響應音頻輸入的踢球,圈套和嗨帽子。我正在尋找使這些盒子旋轉也響應踢。我怎麼能讓這些盒子旋轉?

if (beat.isKick()) kickSize = 200; 
if (beat.isSnare()) snareSize = 250; 
if (beat.isHat()) hatSize = 200; 
translate (width/4, height/4); 
box(kickSize); 
translate(- width/4, - height/4); 

translate (width/2, height/3); 
sphere(snareSize); 
translate(- width/2, - height/3); 

translate (3*width/4, height/4); 
box(hatSize); 
translate(- 3*width/4, - height/4); 


kickSize = constrain(kickSize * 0.95, 1, 32); 
snareSize = constrain(snareSize * 0.95, 1, 32); 
hatSize = constrain(hatSize * 0.95, 1, 32); 
+1

你到底在問什麼?你可以使用'rotate()'函數來旋轉形狀。你有什麼嘗試?你究竟在哪裏卡住? –

+0

每次檢測到「踢球」時都會旋轉形狀 – Ham

+0

translate(width/4,height/4); box(kickSize); rotate(kickSize); translate( - width/4, - height/4); 這似乎旋轉了一切。我想分別旋轉每個盒子 – Ham

回答

0

使用pushMatrix();popMatrix();呼籲孤立的座標系統爲每個對象:

pushMatrix(); 
translate (width/4, height/4); 
box(kickSize); 
popMatrix(); 

pushMatrix(); 
translate (width/2, height/3); 
sphere(snareSize); 
popMatrix(); 

pushMatrix(); 
translate (3*width/4, height/4); 
box(hatSize); 
popMatrix(); 

看一看的2D transformations Processing tutorial瞭解更多詳情。 同樣的原則適用於3D