Documente Academic
Documente Profesional
Documente Cultură
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 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?
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
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
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#
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?
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@
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!!