curve(x1,
y1, x2, y2, x3, y3, x4, y4);
Para la función de curve( ), el primer (x1) y segundo (y1) parámetro especifica el punto de la curva y los dos últimos parámetros (x4, y4), especifican el segundo punto de la curva.
Los parámetros de en medio establecen los puntos para definir la forma de la curva.
De manera similar, podemos realizr con:
beginShape(POLYGON);
curveVertex(84, 91);
curveVertex(68, 19);
curveVertex(21, 17);
curveVertex(32, 100);
endShape( );
ACTIVIDAD REALIZAR LA SIGUIENTE CURVA
mouseX, mouseY,
Como
ya se ha visto anteriormente en algunos ejemplos, los métodos de
processing mouseX y mouseY, almacenan la coordenada x e y del cursor en
relación con el origen en la esquina superior izquierda de la ventana de
display.
Para ver los valores reales
producidos mientras se mueve el ratón, Ej este programa para imprimir los
valores en la consola:
void draw() {
println(mouseX + " :
" + mouseY);
}
Se puede realizar operaciones
tanto con mouseX, como mouseY, por ejemplo mouseX*2 u otra operación, de manera
similar con Y.
Mueve
2 círculos, cuando se mueve el puntero:
void setup(){
size(100, 100);
noStroke();
smooth();
}
void draw(){
float x = mouseX;
float y = mouseY;
float ix = width -
mouseX;
float iy = mouseY -
height;
background(126);
fill(255, 150);
ellipse(x, height/2, y,
y);
fill(0, 159);
ellipse(ix, height/2,
iy, iy);
}
Cuadrado es dibujado por donde el ratón
vaya.
Si presiona el ratón el cuadrado se cambia a color negro.
Si presiona el ratón el cuadrado se cambia a color negro.
background(190);
rect(mouseX-5, mouseY-5, 10, 10);
}
void mousePressed( ) {
fill(0);
}
void mouseReleased( ) {
fill(255);
}
En este ejemplo el cuadrado cambia a rojo
oscuro si cualquier tecla está siendo presionada.
if(keyPressed) {
fill(102, 0, 0);
} else {
fill(204, 102, 0);
}
rect(30, 20, 55, 55);
}
Analizar lo que hacen estos códigos
size(200,200);
noFill();
}
void draw(){
background(230);
int x,y,x1,y1;
x=200-mouseX-25;
y=200-mouseY-25;
x1=mouseX-25;
y1=mouseY-25;
rect(x,25,50,50);
rect(x1,125,50,50);
rect(25,y,50,50);
rect(125,y1,50,50);
}
void setup(){
size(200,200);
}
void draw(){
background(230);
for(int i=0;i<=200;i+=20){
for(int j=0;j<=200;j+=20){
line(i,j,mouseX,mouseY);
}
}
}
void setup(){
size(100, 100);
smooth();
noStroke();
}
void draw(){
background(126);
translate(mouseX,
mouseY);
ellipse(0, 0, 33, 33);
}
void setup(){
size(100, 100);
strokeWeight(8);
smooth();
}
void draw(){
background(204);
float angulo =
map(mouseX, 0, width, 0, TWO_PI);
translate(50, 50);
rotate(angulo);
line(0, 0, 40, 0);
}
translate(45, 60);
rect(-35, -5, 70, 10);
rotate(-PI/8);
rect(-35, -5, 70, 10);
rotate(-PI/8);
rect(-35, -5, 70, 10);
noFill();
translate(50, 30);
rect(-10, 5, 20, 10);
scale(2.5);
rect(-10, 5, 20, 10);
background(0);
smooth();
stroke(255, 120);
translate(66, 33);
for (int i = 0; i < 18; i++) {
strokeWeight(i);
rotate(PI/12);
line(0, 0, 55, 0);
}
float y = 0.0;
void draw() {
line(0, y, 100, y);
y = y + 0.5;
}
void draw() {
line(0, y, 100, y);
y = y + 0.5;
}
La entrada del teclado también puede ser distribuida como un event
handling function.
int
x = 50;int y = 50;
void draw( ){
background(190);
rect(x,y,10,10);
}
void keyPressed( ){
if(key=='w'||key=='W'){
y--;
}else if(key=='s'||key=='S'){
y++;
}else if(key=='a'||key=='A'){
x--;
}else if(key=='d'||key=='D'){
x++;
}
}
0 comentarios: