Page 1 of 1

Processing:Copiar un layer en otro.

PostPosted: Wed Aug 10, 2016 2:07 pm
by OskarG
Hola buenas,
No encuentro un ejemplo donde dibujando line(mouseX,mouseY,pmouseX,pmouseY) en un layer,luego creando otro layer lo pueda trasladar ,es decir copiarlo en el nuevo layer.
¿?Alguien sabe como hacerlo?¿?

Re: Processing:Copiar un layer en otro.

PostPosted: Wed Aug 10, 2016 10:50 pm
by CicTec
Hola OskarG,

Como se crea (o creas) un layer en processing.

Re: Processing:Copiar un layer en otro.

PostPosted: Thu Aug 11, 2016 5:07 am
by erkosone
PGraphics es lo que necesitas, mirate los metodos que trae, hay para dumpear entre objetos PGraphics, haber si cuando llegue a casa te cuelgo mi libreria para processing, te va a ayudar bastante a hacer todas estas cosas, es un game engine.

Re: Processing:Copiar un layer en otro.

PostPosted: Thu Aug 11, 2016 11:28 am
by OskarG
Hola,te explico como creo los layers,el problema es que no soy capaz de copiar el contenido de un layer en otro,pues crashea el programa,seguro porque hago cosas que no son compatibles :lol:
PGraphics a, b;
//
a = createGraphics(width, height);
a.beginDraw();
a.fill(255,0,0);
a.rect(10, 10, 40, 40);
a.endDraw();//dibujo un simple cuadrado en el layer a.

b = createGraphics(width, height);
b.beginDraw();
b.ellipse(50, 50, 50, 50);//dibujo una elipse en el layer b.
b.endDraw();
//muestro ahora los layers
image(a, 0, 0);
image(b, 0, 0);







dudas...
1. ¿como copio el layer a en b o en otro layer creado....?
2.¿como hago una tabla donde en vez que exprese a ,exprese layer[1].rect()..layer[2].line..etc

Re: Processing:Copiar un layer en otro.

PostPosted: Thu Aug 11, 2016 12:30 pm
by OskarG
ya esta con tablas,preguntas....


//constantes..
int NUM_LAYERS = 5;
//Globales
PGraphics[] layer;
void setup()
{
smooth();



size(200,200);
layer = new PGraphics[NUM_LAYERS];
for (int i = 0; i < NUM_LAYERS; i++)
{
layer[i] = createGraphics(200,200);

}
}


void draw()
{


layer[0].beginDraw();
layer[0].fill(255,0,0);
layer[0].rect(10, 10, 40, 40);
layer[0].endDraw();//dibujo un simple cuadrado en el layer 0.


layer[1].beginDraw();
layer[1].ellipse(50, 50, 50,50);
layer[1].endDraw();//dibujo un simple cuadrado en el layer 1.
image(layer[0], 0, 0);
image(layer[1], 0, 0);

}


ejemplo000.png



1.Por que me sale PIXELADO EL CIRUCLO?¿?
2.COMO HAGO PARA COPIAR LA CAPA 0 en la 1. o copiar la capa x en cualquier otra capa que quiera.

Re: Processing:Copiar un layer en otro.

PostPosted: Thu Aug 11, 2016 12:34 pm
by CicTec
1) Puede ser porque es muy pequeño o falta algun parametro de config da setear
2) pon por favor el link de referencia de la clase PGraphics, para ver cual opciones hay para copias.

Re: Processing:Copiar un layer en otro.

PostPosted: Thu Aug 11, 2016 1:15 pm
by OskarG
Documentacion de proceesing.
https://processing.org/reference/copy_.html



void draw()
{


layer[0].beginDraw();

layer[0].background(255,255);
layer[0].fill(255);
layer[0].rect(10, 10, 400, 400);
layer[0].endDraw();//dibujo un simple cuadrado en el layer a.
//actua de fondo....

layer[1].beginDraw();
layer[1].strokeWeight(2);

layer[1].background(255,0);//evita el pixelado.
layer[1].ellipse(100,100, 250,50);
layer[1].endDraw();//dibujo un simple cuadrado en el layer a.
//capa 1...
layer[2].beginDraw();
layer[2].strokeWeight(2);

layer[2].fill(255,0,0);
layer[2].background(255,0);//evita el pixelado.
//layer[1].background(255);
layer[2].ellipse(120,100, 150,50);
layer[2].endDraw();//dibujo un simple cuadrado en el layer a.
//capa2....
image(layer[0], 0, 0);
image(layer[1], 0, 0);
image(layer[2], 0, 0);



}


///SOlucionado el primer problema,ahora solo falta saber copiar de layer 1 a layer 2 o a cualquier otro layer.

Re: Processing:Copiar un layer en otro.

PostPosted: Thu Aug 11, 2016 1:21 pm
by CicTec
OskarG wrote:Documentacion de proceesing.
https://processing.org/reference/copy_.html

Esta no es la documentation de la clase PGraphics, es de la funcion "copy", que en este caso no te sirve porque:
Copies a region of pixels from the display window to another area of the display window and copies a region of pixels from an image used as the srcImg parameter into the display window

Lo que hace es copiar un trozo de la pantalla u de una region de otra imagen, en otra parte de la pantalla, tu lo que necesitas es copiar una capa en otra.