Новое в обработке работает на понимании этого кода:Использование карты и функции Перевести в обработке
import com.onformative.leap.LeapMotionP5;
import java.util.*;
LeapMotionP5 leap;
LinkedList<Integer> values;
public void setup() {
size(800, 300);
frameRate(120); //Specifies the number of frames to be displayed every second
leap = new LeapMotionP5(this);
values = new LinkedList<Integer>();
stroke(255);
}
int lastY = 0;
public void draw() {
**translate(0, 180)**; //(x, y, z)
background(0);
if (values.size() >= width) {
values.removeFirst();
}
values.add((int) leap.getVelocity(leap.getHand(0)).y);
System.out.println((int) leap.getVelocity(leap.getHand(0)).y);
int counter = 0;
** for (Integer val : values)** {
**val = (int) map(val, 0, 1500, 0, height);**
line(counter, val, counter - 1, lastY);
point(counter, val);
lastY = val;
counter++;
}
** line(0, map(1300, 0, 1500, 0, height), width, map(1300, 0, 1500, 0, height)); //(x1, y1, x2, y2)**
}
Это в основном затяжке графика движения обнаруженного на оси у, используя датчик Leap Motion. Выходной сигнал выглядит так:
В конечном итоге мне нужно сделать что-то похожее на это, которое будет определять амплитуду вместо скорости одновременно на всех трех осях, а не только на y.
Использование карты и перевода - вот что меня пугает. Я прочитал определения этих функций на веб-сайте Processing, поэтому я знаю, что это такое и синтаксис, но что я не понимаю, почему? (что, возможно, является самой важной частью.
Я спрашиваю, может ли кто-нибудь предоставить простые примеры, объясняющие ПОЧЕМУ за этими двумя функциями. Например, с учетом программы, которая должна выполнять A, B и C, с Foo данные, у и х, можно использовать карту или Перевести потому что A, B и C.
Я думаю, что программирование гиды часто упускают этот важный факт, но для меня это очень важно, чтобы действительно понять функцию.
Бонусные баллы за пояснение:
for (Integer val : values) and LinkedList<Integer> values;
(не может найти документацию по процессам петь сайт для них)
Спасибо!
@ kevinas5, Это было здорово! Таким образом, перевод и 2 линейные функции объединяются, что дает иллюзию движущейся линии в основном? –
Я не уверен, что строка 'line (0, карта (1300, 0, 1500, 0, высота), ширина, карта (1300, 0, 1500, 0, высота)); // (x1, y1, x2, y2) 'должен делать. Это рисует горизонтальную линию (но я не вижу ее, может быть, она отключена от экрана). Фактическое перемещение выполняется путем удаления первого элемента списка (который сдвигает все остальные элементы, оставленные одним). :) – kevinsa5
Я удалил первую строку(), и только 2-й там все, что она делает, это ничья прямая. Я предполагаю, что это делается, чтобы поддерживать линию даже в том случае, когда обнаружено движение. –