Trying to understand what is being done....
in
Core Library Questions
•
2 years ago
I'm learning Processing, so I am reading some example scripts as a way to learn the language etc. I've come upon this one, and for some reason I can't seem to figure out the logic behind it. Any help would be greatly appreciated.
- /**
- * Simple Real-Time Slit-Scan Program.
- * By Golan Levin.
- *
- * This demonstration depends on the canvas height being equal
- * to the video capture height. If you would prefer otherwise,
- * consider using the image copy() function rather than the
- * direct pixel-accessing approach I have used here.
- *
- * Created December 2006.
- * Updated June 2007 by fry.
- */
- import processing.video.*;
- Capture video;
- int videoSliceX;
- int drawPositionX;
- void setup() {
- size(600, 240, P2D);
- // Uses the default video input, see the reference if this causes an error
- video = new Capture(this, 320, 240, 30);
- videoSliceX = video.width / 2;
- drawPositionX = width - 1;
- background(0);
- }
- void draw() {
- if (video.available()) {
- video.read();
- video.loadPixels();
- // Copy a column of pixels from the middle of the video
- // To a location moving slowly across the canvas.
- loadPixels();
- for (int y = 0; y < video.height; y++){
- int setPixelIndex = y*width + drawPositionX;
- int getPixelIndex = y*video.width + videoSliceX;
- pixels[setPixelIndex] = video.pixels[getPixelIndex];
- }
- updatePixels();
- drawPositionX--;
- // Wrap the position back to the beginning if necessary.
- if (drawPositionX < 0) {
- drawPositionX = width - 1;
- }
- }
And second: the for loop. I feel like it should be obvious but its not coming to me...
Thanks for the helps
1