массив автообновления javascript - PullRequest
0 голосов
/ 05 августа 2011

Я бы хотел сделать следующее;

  1. создать массив из 2 столбцов произвольной конечной длины (скажем, 10 строк)
  2. последовательно заполняет его из потока данных с постоянной скоростью
  3. после заполнения обновите его из того же потока данных (т. Е. Замените элемент 0, сдвиньте на 1-9 вниз, отбросьте старый 9)
  4. (оптимально) вывести среднее значение для каждого столбца

Я, наверное, могу сделать 4 сам, но понятия не имею, как сделать 1-3.

Если это поможет, я пытаюсь перевести это;

http://kindohm.com/2011/03/01/KinectCursorControl.html (см. Под курсором страшного дрожания).

Ответы [ 2 ]

0 голосов
/ 05 августа 2011

Это должно работать нормально (между прочим, хороший вопрос - забавная небольшая задача, поскольку существует множество способов сделать это)до pointSmoother.Объект имеет 4 метода: pushPoint(), clear(), getPoints() и average().Кроме того, вы можете указать, сколько координат имеет точка и сколько точек (максимум) сохранить.Я использовал ваш пример 2 координат на точку и 10 точек за раз.

Теперь я сделал предположение, что вы получаете свои значения в наборах по 2 за раз.Давайте назовем эти 2 значения x и y.Получив их, добавьте их к вещи, используя pointSmoother.pushPoint(x, y);.Затем вы можете получить «среднюю точку», вызвав pointSmoother.average(), который вернет массив с (в данном случае) 2 значениями: средний х и средний у., вы можете вызвать pointSmoother.getPoints(), который вернет массив точек.И наконец, pointSmoother.clear() очистит массив предыдущих значений.

Вот демо-версия: http://jsfiddle.net/tapqs/1/

0 голосов
/ 05 августа 2011
var nums = [[1,2],[1,3],[2,1]];
alert(nums[0][0]); //1 
alert(nums[0][1]); //2

Это двумерный массив. Загрузка данных работает так же, как и с любым другим массивом.

Чтобы обновить его последовательно, вы смотрите на поведение очереди в javascript. Используйте unshift () и pop ().

Массивы Javascript: http://www.w3schools.com/jsref/jsref_obj_array.asp

Наконец, для усреднения столбцов, предполагая, что есть 10 позиций:

var num1 = 0;
var num2 = 0;
for(int i = 0;i<10;i++)
{
    num1 +=array[i][0];
    num2 +=array[i][1];
}
num1 = num1/10;
num2 = num2/10;

//num1 is now the average of the first column
//num2 is now the average of the second column
...