O para ser más exactos, unas ligeras modificaciones al primero.
Esta vez, usando el programa que creamos la vez pasada creamos una espiral modificando tres líneas del código. Aquí el Código y las capturas de Pantalla.
//DECLARACIÓN DE VARIABLES
ArrayList points;
int counter;
double step, theta;
PVector dummy;
//CONFIGURACIÓN (PARTE DE ELLA)
void setup(){
frameRate(6);//Intrucción para acelerar la ejecución
size(1000,1000); //esta parte define el tamaño de la ventana.
//background(255);
stroke (random(0,100),random(0,250),random(0,210)); //Con una sola cifra se manejan grises, con tres cifras se manejan colores de rojo, verde y azul.
fill(156,030,600);//Igual que en el 'bakground', este maneja el color de la línea.
points=new ArrayList();
dummy=new PVector(0,0);
counter=0;
theta=0;
step=Math.PI/40;
}
//'LOOP' O CICLO QUE SE EJECUTA MIENTRAS ESTÉ ACTIVO EL RPOPGRAMA
void draw(){
float actx=0;
float acty=0;
float h=150;
float k=150;
float r=counter; //Cambiando 'counter' por '50', la espiral regresa a ser círculo
background(random(0,255),random(0,100),random(0,100));//Con una sola cifra se manejan grises, con tres cifras se manejan colores de rojo, verde y azul.
actx=h;
acty=h;
//for(float theta=0; theta<2*Math.PI;theta+=step)
//if(theta<2*Math.PI) //Controla el número de vueltas que da el dibujo
float x=(float)(h+r*Math.cos(theta));
float y=(float)(k-r*Math.sin(theta));
//point(x,y);
pint p=new pint(x,y,counter);points.add(p);
points.add(p);
ellipse(x,y,30,30);//Cambia el tamaño del puntero (circulito que dibuja al círculo blanco)
counter++;
theta+=step;
trace();
//'FUNCIONES' O DEFINICIÓN DE CLASE
}
void trace(){
for(int i=0;i<points.size()-2;i++){
pint p1=(pint)points.get(i);
pint p2=(pint)points.get(i+1);
if(p1.index==p2.index-1)
line(p1.x,p1.y,p2.x,p2.y);
}
}
class pint extends PVector{
float x,y;
float index;
pint(float x_,float y_,float i){
x=x_;
y=y_;
index=i;
}
}
El fondo del programa y el color del puntero cambian aleatoriamente cuando se ejecuta.
Ana C.C.