我正在使用簡單的OpenNI和處理的Kinect,並且我試圖使用手的Z位置來模擬按鈕按下。到目前爲止,當我用一隻手試用它時,它的工作非常好,但是,當我嘗試使用第二隻手工作時,只有一隻手可以工作。 (我知道通過移動除if語句之外的所有東西可以更有效率,但是我保留那些以防萬一我想更改尺寸或其他東西。)仿真按鈕按下使用Kinect/SimpleOpenNI +處理深度
irz和ilz是最初的Z當他們第一次被onCreateHands識別並且rz和lz是當前Z位置時手的位置。截至目前,代碼一方面可以正常工作,另一方面可以保持按下或不按下。如果我評論其中的一個部分,它也可以正常工作。
if (rz - irz > 0) {
pushStyle();
fill(60);
ellipse(rx, ry, 10, 10);
popStyle();
rpressed = true;
}
else {
pushStyle();
noFill();
ellipse(rx, ry, 10, 10);
popStyle();
rpressed = false;
}
if (lz - ilz > 0) {
pushStyle();
fill(60);
ellipse(lx, ly, 10, 10);
popStyle();
lpressed = true;
}
else {
pushStyle();
noFill();
ellipse(lx, ly, 10, 10);
popStyle();
lpressed = false;
}
我試圖輸出RZ的值 - IRZ和LZ - ILZ和號範圍從較小的負的值,以用於小LZ正值(約-8至8) - ILZ。但rz - irz輸出8到30之間的數字,具體取決於每次運行時的數字,並且永遠不會一致。另外,當我註釋掉lz-ilz的代碼時,rz-irz的值看起來很好,它按照預期運行。追蹤兩個Z位置的原因是否有一個原因?有沒有辦法讓它起作用?
謝謝!