Ejercicios de Interactividad:
1) Realizar un programa que permita mover una figura
circular de color negro de la siguiente forma:
- Al mover el mouse hacia arriba, la figura debe moverse
hacia abajo
- Al mover el mouse hacia abajo, la figura debe moverse
hacia arriba
- Al hacer click con el mouse, la figura debe pasar a ser
azul
– Al presionar una tecla, la figura debe pasar a ser negro
void setup(){
size(400,400);
background(255);
}
void draw(){
ellipse(200,height-mouseY,50,50);
}
void mousePressed(){
fill(0,0,255);
ellipse(200,height-mouseY,50,50);
}
void keyPressed(){
fill(O);
ellipse(200,height-mouseY,50,50);
}
2) Realizar un programa que me permita dibujar en la
pantalla, con trazo negro.
void setup(){
size(400,400);
background(255);
}
void draw(){
fill(0);
line(pmouseX,pmouseY,mouseX,mouseY);
}
3) Tomando el Ejercicio 2), a medida que se va dibujando, el
programa me debe permitir cambiar el color de la figura a Azul a medida que
presiono una tecla, y aumentar el tamaño del mismo cuando presione el mouse.
float m=2;
void setup(){
size(400,400);
background(255);
}
void draw(){
strokeWeight(m);
line(pmouseX,pmouseY,mouseX,mouseY);
}
void mousePressed(){
m++
}
void keyPressed(){
stroke(0,0,255);
line(pmouseX,pmouseY,mouseX,mouseY);
}
4) Realizar un programa que me permita dibujar una elipse
centrada en la pantalla, luego, a medida que muevo el mouse en forma horizontal
me permita modificar el ancho, y si lo muevo en forma vertical, modificar el
alto.
void setup(){
size(400,400);
}
void draw(){
ellipse(200,200,mouseX,mouseY);
}
5) Para qué sirve la función random()? Cuales son las
diferencias entre random(50) y random(-50,50)
La funcion random() se utiliza para obtener un valor alazar entre un rango anteriormente establecido.
La diferencia entre el primero y el segundo, es que uno da un valor entre 0 y 50 y el otro entre -50 y 50.
6) Realizar un programa que se encargue de ubicar 100
cuadrados en posiciones aleatorias de la pantalla, con dimensiones también
aleatorias , siendo el tamaño mínimo 50 y el máximo 200.
void setup(){
size (400,400);
}
void draw(){ rect(random(50,200),random(50,200),random(50,200),random(50,200));
}
7) Realizar un programa que me permita ir moviendo el mouse
en la pantalla, y a medida que voy moviendo el mismo, se va desplazando una
elipse. Otra cosa es que debe haber 4 líneas que salen de las esquinas y se
unen al centro de la elipse, se manera que las 5 figuras se mueven juntas.
void setup(){
size(400,400);
background(255);
}
void draw(){
strokeWeight(-3);
line(0,0,mouseX,mouseY);
line(0,400,mouseX,mouseY);
line(400,400,mouseX,mouseY);
line(400,0,mouseX,mouseY);
fill(17,130,55);
ellipse(mouseX,mouseY,80,80);
}
8) Realizar un programa que me permita diagramar líneas
ubicadas de forma vertical en la pantalla, pero que las mismas se vayan
dibujando de acuerdo a la posición X del mouse. Aparte, el color de las mismas
debe de ser aleatorio cada vez que se dibujen.
void setup(){
size(400,400);
}
void draw(){
strokeWeight(4);
stroke(random(255),random(255),random(255));
line(mouseX,0,mouseX,mouseY);
}
9) Basándonos en la posición del mouse en la pantalla,
escribir un programa que permita escribir líneas en la pantalla que partan
desde el punto (0,0) y (400,400), hacia la posición del puntero del mouse. La
pantalla debe de ser de 400 X 400. Los colores de las líneas que parten desde
el punto (0,0) deben poseer la tonalidad verde y el mismo debe variar de
acuerdo a la distancia del mouse al punto mencionado. Lo mismo para las líneas
que parten desde (400,400) pero con tonalidades azules.
void setup(){
size(400,400);
}
void draw(){
strokeWeight(3);
float
a=dist(0, 0, mouseX,mouseY);
float
b=dist(400, 400,mouseX,mouseY);
stroke(0,a,0);
line(0,0,mouseX, mouseY);
stroke(0,0,b);
line(400,400, mouseX,mouseY);
}
10) Realizar un programa dibuje como si fuese un lápiz, y
borre cuando se presiona el botón del mouse, permitiéndome volver a escribir
cuando presiono alguna tecla.
void setup(){
size(400,400);
background(255);
}
void draw(){
line(pmouseX,pmouseY,mouseX,mouseY);
}
void keyPressed(){
loop();
}
void mousePressed(){
background(255);
noLoop()
}
11) Para que se utiliza la función noLoop()? Y la función
loop()?
noLoop() frena los frames, loop() permiten que los Frames continuen.
12) Realizar un programa que me permita ir generando elipses
de ancho y alto aleatorio, pero que las mismas se ubiquen en las coordenadas
opuestas a la posición del mouse. De esta forma si el mouse se encuentra en
(100,100), se deberá generar una elipse en (300,300) (Suponiendo una pantalla
de 400 X 400). Si se encuentra en (150,200), deberá estar en (250,200). Al
presionar una tecla, se deberá detener la interacción con la pantalla, de
manera que no se generen más elipses, y si hago click en la pantalla, me debe
permitir volver a interactuar.
void setup(){
size(400,400);}
void draw(){
background(255);
fill(0);
ellipse(width-mouseX,height-mouseY,random(200),random(200));
}
void mousePressed(){
loop();
}
void keyPressed(){
background(255);
noLoop()
}
13) Realizar un programa que me permita mientras mantengo
pulsado el botón del mouse, generar puntos en posiciones aleatorias en una
distancia máxima desde la posición del mouse, de 100 pixels.
void setup(){
size(400,400);
background(255);
}
void draw(){
fill(random(255),0,random(255));
}
void keyPressed(){
ellipse(mouseX-random(-100,100),mouseY-random(-100,100),6,6);
}
14) Para que se utiliza la función round()?
La funcion round() sirve para calcular el valor entero mas cercano dentro de los Floats.
Ejercicios de Variables:
1) Realizar un programa que dibuje una circunferencia de
radio 50 en la esquina superior izquierda de la pantalla. Luego, por cada
fotograma que se dibuje en la pantalla, la circunferencia debe ir avanzando en
diagonal a la esquina inferior derecha.
int a;
void setup(){
size(400,400);
background(255);
a = 1;
}
void draw(){
background(255);
ellipse(a,a,50,50);
a++
}
2) Realizar el mismo ejercicio que el punto 1), pero con
otra circunferencia que se vaya desplazando desde la esquina superior derecha,
hacia la esquina inferior izquierda. Ambas circunferencias deberían cruzarse en
el medio de la pantalla.
int a;
int b;
void setup(){
size(400,400);
a = 1;
b = 400;
}
void draw(){
background(255);
ellipse(a,a,50,50);
ellipse(b,a,50,50);
a++
b--
}
3) Realizar un ejercicio que permita dibujar una fila de
circunferencias que toquen sus bordes, de radio 50. El programa debe ser
realizado con variables, de forma que solo exista una sola función ellipse
int a;
void setup(){
size(400,400);
background(255);
a = 25;
}
void draw(){
fill(255,30,100);
ellipse(a,25,50,50);
a = a + 50;
}
4) Realizar un
programa que permita dibujar un punto centrado en la pantalla, y que este vaya
creciendo con forma de cuadrado.
int a;
void setup(){
size(400,400);
background(255);
a = 1;
noStroke();
}
void draw(){
rectMode(CENTER);
fill(253,255,50);
rect(200,200,a,a);
a++
}
5) Para qué sirve la función println()?
Sirve ayudar para buscar la "data" que el programa esta produciendo en ese momento.
6) Realizar un programa que arranque con 2 cuadrados en las
esquinas superiores, uno en la derecha y otro en la izquierda. Luego 2 círculos
en las esquinas inferiores, uno en la derecha y otro en la izquierda. Cada una
de estas figuras debe ir incrementando su posición en 1, y cada una en un
sentido, así, el cuadrado de la esquina superior izquierda debe ir avanzando
hacia la derecha, el de la superior derecha, hacia abajo; el círculo de la
inferior derecha hacia la izquierda y el círculo de la inferior izquierda hacia
arriba.
int a;
int b;
void setup(){
size(400,400);
noStroke;
a = 0
b = 375
}
vooid draw(){
background(255);
fill(200,50,70);
rect(a,0,50,50);
rect(350,a,50,50);
ellipse(b,375,50,50);
ellipse(25,b,50,50);
a++
b--
}
7) Al ejercicio del punto 6), agregar la posibilidad de que
el color de relleno de cada figura vaya cambiando. Los círculos en escalas de
azules y los cuadrados en escalas de verdes. (De los mas claros a los mas
oscuros)
int a;
int b;
int c;
void setup(){
size(400,400);
noStroke;
a = 0
b = 375
}
vooid draw(){
c = map(a,25,375,255,0);
background(255);
fill(0,0,c);
rect(a,0,50,50);
rect(350,a,50,50);
fill(0,c,0);
ellipse(b,375,50,50);
ellipse(25,b,50,50);
a++
b--
c--
}
8) Al ejercicio 7
agregarle la opción de que cada figura vaya desapareciendo a medida que se
encuentra avanzando, llegando a desaparecer completamente al llegar a la esquina
opuesta.
int a;
int b;
int c;
void setup(){
size(400,400);
nostroke
a = 0
b = 375
}
vooid draw(){
c = map(a,25,375,255,0);
noStroke();
background(255);
fill(0,c,0,c);
rect(a,0,50,50);
rect(350,a,50,50);
fill(0,0,c,c);
ellipse(b,375,50,50);
ellipse(25,b,50,50);
a++
b--
c--
}
9) Identifique el funcionamiento de la función map(). Defina
los parámetros que posee.
Map() se utiliza para transformar una escala de valores en otra escala nueva.
Utiliza cinco parámetros: map(x,x1,x2,y1,y2);
10) Realice un programa que permita dadas 2 figuras
circulares que avanzan cruzando las diagonales principales de la pantalla,
cambien los colores de acuerdo a la distancia que haya entre ellos. Las figuras
deben iniciar su recorrido en las esquinas superiores derecha e izquierda.
int a;
int b;
int c;
void setup(){
size(400,400);
a = 1;
b = 400;
c = dist(a,a,b,a)
}
void draw(){
c = dist(a,a,b,a)
background(255);
fill(0,0,c);
ellipse(a,a,50,50);
fill(0,c,0);
ellipse(b,a,50,50);
a++
b--
}
11) Realice un programa que permita dadas 2 figuras
circulares que avanzan cruzando las diagonales principales de la pantalla, cambien
su tamaño de acuerdo a la distancia que haya entre ellos. Las figuras deben
iniciar su recorrido en las esquinas superiores derecha e izquierda. Al iniciar
el recorrido el tamaño debe ser de 0 para ambas figuras y al cruzarse en el
centro debe tener el tamaño máximo de que ocupen en la pantalla, debiendo
volver a achicarse cuando lleguen a los extremos opuestos.
float posicion = 25;
void setup(){
size(400,400);
}
void draw(){
background(255);
fill(255,150,46);
posicion++;
float
distancia = dist(posicion,posicion,width-posicion,posicion);
float tamano=map(distancia,375,0,0,400);
ellipse(posicion,posicion,tamano,tamano);
ellipse(width-posicion,posicion,tamano,tamano);
}
12) Identifique para qué sirve la función pow().
Sirve para multiplicar numeros por si mismos (o sus reciprocos) en largas cuentas.