Interazione con gli elementi HTML
Con p5.js, fra l'altro, è possibile:
- ricavare i fotogrammi della webcam
- creare e controllare checkbox
- creare slider e leggerne il valore corrente
// width=670 height=600 lines=16
var video;
var slider;
var cols = 36;
var rows = 27;
var boxes = [];
function setup() {
noCanvas();
pixelDensity(1);
video = createCapture(VIDEO);
video.size(cols, rows);
slider = createSlider(0, 255, 77);
createDiv("").id("mirror");
for (var y = 0; y < rows; y++) {
for (var x = 0; x < cols; x++) {
var box = createCheckbox();
box.style('display', 'inline');
box.style('margin', '0 -1px');
box.parent('mirror');
boxes.push(box);
}
var linebreak = createSpan('<br/>');
linebreak.parent('mirror');
}
}
function draw() {
video.loadPixels();
for (var y = 0; y < video.height; y++) {
for (var x = 0; x < video.width; x++) {
var index = (video.width - x + 1 + (y * video.width))*4;
var r = video.pixels[index+0];
var g = video.pixels[index+1];
var b = video.pixels[index+2];
var bright = (r+g+b)/3;
var threshold = slider.value();
var checkIndex = x + y * cols;
if (bright > threshold) {
boxes[checkIndex].checked(false);
} else {
boxes[checkIndex].checked(true);
}
}
}
}
Il codice è un po' complesso per chi è agli inizi ma i più curiosi possono dare un'occhiata ai videotutorial di Daniel Shiffman:
- Brightness Mirror per la cattura dei fotogrammi
- Checkbox Mirror per l'uso dei checkbox
e ai codici completi:
- CodingTrain/.../Tutorials/P5JS/p5.js_video/11.5_checkbox_mirror