Hi everybody, I am new to coding.
Given this code example, how can I rotate pixels based on other light values?
Do I need to define 3 different brightness values?
In this code example, there is this brightness(_c) inside the rotate function.
I would like to rotate pixels based on “darkness(_c)” and “midness(_c)”.
Even if “darkness(_c)” and “midness(_c)” were already defined, as brightness is, I don´t think I would use it in this way:
rotate((2 * PI * brightness(_c) / 255.0));
rotate((2 * PI * darkness(_c) / 255.0));
rotate((2 * PI * midness(_c) / 255.0));
So, I don’t know how to create this but my idea would be something like this:
While the light value of the pixels is > or = a, rotate all a
While the light value of the pixels is > or = b, rotate all b
While the light value of the pixels is > or = c, rotate all c
ps: I am using (_c) because if I use © <----- I get this symbol
Here is the code:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
import processing.video.*;
// Size of each cell in the grid
int cellSize = 20;
// Number of columns and rows in our system
int cols, rows;
// Variable for capture device
Capture video;
void setup() {
size(640, 480);
frameRate(30);
cols = width / cellSize;
rows = height / cellSize;
colorMode(RGB, 255, 255, 255, 100);
// This the default video input, see the GettingStartedCapture
// example if it creates an error
video = new Capture(this, width, height);
// Start capturing the images from the camera
video.start();
background(0);
}
void draw() {
if (video.available()) {
video.read();
video.loadPixels();
// Begin loop for columns
for (int i = 0; i < cols; i++) {
// Begin loop for rows
for (int j = 0; j < rows; j++) {
// Where are we, pixel-wise?
int x = i*cellSize;
int y = j*cellSize;
int loc = (video.width - x - 1) + y*video.width; // Reversing x to mirror the image
float r = red(video.pixels[loc]);
float g = green(video.pixels[loc]);
float b = blue(video.pixels[loc]);
// Make a new color with an alpha component
color c = color(r, g, b, 75);
// Code for drawing a single rect
// Using translate in order for rotation to work properly
pushMatrix();
translate(x+cellSize/2, y+cellSize/2);
// Rotation formula based on brightness
rotate((2 * PI * brightness(c) / 255.0));
rectMode(CENTER);
fill(c);
noStroke();
// Rects are larger than the cell for some overlap
rect(0, 0, cellSize+6, cellSize+6);
popMatrix();
}
}
}
}