/* built with Studio Sketchpad:
* https://sketchpad.cc
*
* observe the evolution of this sketch:
* https://studio.sketchpad.cc/sp/pad/view/ro.GLwBX05jiwp/rev.1086
*
* authors:
* jaruz
* license (unless otherwise specified):
* creative commons attribution-share alike 3.0 license.
* https://creativecommons.org/licenses/by-sa/3.0/
*/
// This sketch builds on a prior work, "circulo gira en 10 pasos con cambio de color", created by jaruz & juanantonioruz
// http://studio.sketchpad.cc/sp/pad/view/ro.9wvc8VSiw3sz0/rev.147
// This sketch builds on a prior work, "circulo gira en 10 pasos", created by jaruz
// http://studio.sketchpad.cc/sp/pad/view/ro.9K0PXtoZcLce5/rev.717
// y ahora nos aprovechamos de la posibilidad de llamar a la función de forma repetida
int limiteSecuencia=50;
int anchoCirculo=150;
void draw(){
background(0);
int pasoActualSecuencia= frameCount % limiteSecuencia;
pintaCirculo(100, 100, anchoCirculo, limiteSecuencia, pasoActualSecuencia);
// ahora podemos cambiar algunos comportamientos más relacionados con la secuencia
pintaCirculo(100, 185, 20, 10, frameCount % 10);
int contador=frameCount+2;
pintaCirculo(100, 205, 20, 10, contador % 10);
int contador2=contador+1;
pintaCirculo(100, 225, 20, 10, contador2 % 10);
int contador3=contador2+1;
pintaCirculo(100, 245, 20, 10, contador3 % 10);
}
void pintaCirculo(int x, int y, int ancho, int limiteSecuencia, int pasoActual){
fill(100, map(pasoActual-(limiteSecuencia/2), -(limiteSecuencia/2), (limiteSecuencia/2)-1,150,200 ),255);
if(pasoActual>((limiteSecuencia/2)-1))
pasoActual=pasoActual-(limiteSecuencia);
if(pasoActual<0) pasoActual=-1*pasoActual;
float porcentaje=map(pasoActual, 0, (limiteSecuencia/2), 0, 100);
// println(pasoActual+" = "+porcentaje);
int anchoActual=ancho*porcentaje/100;
ellipse(x, y, anchoActual, ancho);
}
void setup(){
frameRate(25);
smooth();
size(300, 300);
}