Sunteți pe pagina 1din 8

Dibujar en C#

Tengo un panel en el que dibujo una figura geomtrica compuesta por segmentos (por ejemplo, un cuadrado). Despus tengo que mover un crculo (mediante unos datos que me llegan desde un servidor) para que siga esa lnea. Para refrescar el panel y redibujar la nueva posicin del crculo uso miPanel.Refresh() que hace que "salte" el manejador de eventos Paint de miPanel. Con esto se redibuja todo lo que sale en el panel (figura geomtrica y el crculo que se va moviendo). La duda que tengo es si hay alguna forma de que slo redibuje el crculo porque la figura geomtrica no vara desde la primera vez que la pinto. Muchas gracias!!!

pucelano7 Ver Perfil Enviar Mensaje Privado a pucelano7 Encontrar Ms Mensajes escritos por pucelano7 31/03/09, 22:59:59 #2 Re: Dibujar en C#
Tu figura geomtrica que es? un picturebox? no te funciona algo como figuraGeometrica.Refresh( )? quiero decir, refrescar solo el objeto de la figura y no todo el panel. __________________ Intel Core 2 Q9450 (3.2 Ghz) | Thermalright 120 Extreme | ASUS Maximus Formula | 8 GB DDR2 1000 (5-5-515) | Sapphire HD 5870 Vapor-X 1GB | Antec P182

Bakidok El seor de los forillos

Fecha de Ingreso: ene 2006 Mensajes: 3,141

Bakidok Ver Perfil Enviar Mensaje Privado a Bakidok Encontrar Ms Mensajes escritos por Bakidok 01/04/09, 08:02:32 #3 Re: Dibujar en C#
El crculo que se va moviendo lo dibujo con:

pucelano7 Viciadill@
Fecha de Ingreso: ago 2005 Mensajes: 79

Cdigo:
paint.DrawEllipse(new Pen(Color.Red, 3), coordXPanel, coordYPanel, 30, 30); Voy actualizando coordXPanel y coordYPanel con unos datos que me manda un servidor. La figura que siempre es la misma lo hago con:

Cdigo:
//Dibujo puntos paint.DrawEllipse(new Pen(Color.Black, 3), coordX1Panel - 1, coordY1Panel - 1, 2, 2); paint.DrawEllipse(new Pen(Color.Black, 3), coordX0Panel - 1, coordY0Panel - 1, 2, 2); //Dibujo segmento que

una puntos paint.DrawLine(new Pen(Color.Black, 5), new Point(coordX0Panel, coordY0Panel), new Point(coordX1Panel, coordY1Panel)); Est dentro de un foreach que recorre una lista con los puntos (por ejemplo, para un cuadrado tengo una lista con los cuatro puntos que unos con segmentos. Entonces, dices que podra crear un objeto picturebox y de esa forma se puede refrescar slo ese objeto?

ltima edicin por pucelano7 fecha: 01/04/09 a las 08:05:20

pucelano7 Ver Perfil Enviar Mensaje Privado a pucelano7 Encontrar Ms Mensajes escritos por pucelano7 01/04/09, 09:23:13 #4 Re: Dibujar en C#
No no, es que crea que tenas cargada la imagen dentro un

Bakidok El seor de los forillos

picturebox (algo simple vamos xD). Si lo tienes como dices, la otra posibilidad podra ser poner el objeto que se mueve dentro de un panel (con fondo invisible, creo que se puede) y as solo ir refrescando ese panel, por lo que el panel general que tambien contendr el objeto fijo no har falta refrescarlo. __________________ Intel Core 2 Q9450 (3.2 Ghz) | Thermalright 120 Extreme | ASUS Maximus Formula | 8 GB DDR2 1000 (55-5-15) | Sapphire HD 5870 Vapor-X 1GB | Antec P182

Fecha de Ingreso: ene 2006 Mensajes: 3,141

Bakidok Ver Perfil Enviar Mensaje Privado a Bakidok Encontrar Ms Mensajes escritos por Bakidok 01/04/09, 09:30:59 #5 Re: Dibujar en C#
Muchas gracias! Probar lo que dices y ya os cuento

pucelano7 Viciadill@
Fecha de Ingreso: ago 2005 Mensajes: 79

pucelano7

Ver Perfil Enviar Mensaje Privado a pucelano7 Encontrar Ms Mensajes escritos por pucelano7 01/04/09, 12:46:47 #6 Re: Dibujar en C#
Estoy intentando dos paneles superpuestos uno encima del otro: - En uno pintar el crculo que se va moviendo - En el otro pintar la figura geomtrica que est quieta. Uno de los dos paneles con fondo blanco y el otro (superior) con fondo transparente...pero se ve que el transparente no es transparente del todo y parece que no funciona. Estoy investigando alguna solucin, a ver...

pucelano7 Viciadill@
Fecha de Ingreso: ago 2005 Mensajes: 79

pucelano7 Ver Perfil Enviar Mensaje Privado a pucelano7 Encontrar Ms Mensajes escritos por pucelano7 01/04/09, 15:17:38 #7 Re: Dibujar en C#

Bakidok El seor de los forillos

Fecha de Ingreso: ene 2006 Mensajes: 3,141

Y en lugar de transparente, que te sale? blanco? __________________ Intel Core 2 Q9450 (3.2 Ghz) | Thermalright 120 Extreme | ASUS Maximus Formula | 8 GB DDR2 1000 (55-5-15) | Sapphire HD 5870 Vapor-X 1GB | Antec P182

Bakidok Ver Perfil Enviar Mensaje Privado a Bakidok Encontrar Ms Mensajes escritos por Bakidok 01/04/09, 15:25:56 #8 Re: Dibujar en C#
S, sale blanco. Siguiendo se me hacen transparentes los dos paneles. Es lo nico decente que he encontrado pero no me sirve.

pucelano7 Viciadill@
Fecha de Ingreso: ago 2005 Mensajes: 79

pucelano7 Ver Perfil Enviar Mensaje Privado a pucelano7 Encontrar Ms Mensajes escritos por pucelano7 02/04/09, 08:59:19 #9

Juano

Re: Dibujar en C#
Por qu no dibujas el cuadrado en un Bitmap y asignas ese Bitmap como BackgroundImage del panel al principio? Asi luego solo tienes que ir redibujando el circulo que se mueve con el evento Paint. Salu2. __________________ Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. [Rich Cook] Que todava no has ledo las Normas del Foro?

Fecha de Ingreso: nov 2002 Localizacin: Mnchen Mensajes: 2,081

Juano Ver Perfil Enviar Mensaje Privado a Juano Visita mi Pgina! Encontrar Ms Mensajes escritos por Juano 02/04/09, 09:05:36 #10 Re: Dibujar en C#
Con un bitmap te refieres a

pucelano7 Viciadill@

Fecha de Ingreso: ago 2005 Mensajes: 79

que dibuje una imagen normal y corriente? O podra dibujar la figura que yo quiera cada vez desde la aplicacin? Si pudiera generar el bitmap con los puntos sera una solucin muy buena!!

S-ar putea să vă placă și