Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
[Solucionado] - DrawingArea ¿como Dibujar A Mano Alzada?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje [Solucionado] - DrawingArea ¿como Dibujar A Mano Alzada? 
 
En VB4 en su dia recuerdo que existia un ejemplo my sencillo que indicaba como poder dibujar a mano alzada en un picturebox, ahora me encuentro con la siguiente necesidad:

Para un proyecto en el cual se requiere una firma, queremos pasar del típico albaran en papel a formato digital (usando una pantalla tactil claro)

El problema es que no tengo ni idea de como poder dibujar a mano alzada dentro de un Drawing Area.

¿alguien me puede poner algun ejemplo lo más sencillo posible?

Gracias por adelantado

Edito:

Bueno, he conseguido hacer "algo" os pongo aqui el código


PUBLIC SUB DrawingArea1_MouseDown()

Draw.Begin(DrawingArea1)

END

PUBLIC SUB DrawingArea1_MouseMove()
  
Draw.Point(Mouse.x, Mouse.y)
  
END



PUBLIC SUB DrawingArea1_MouseUp()
  
  Draw.End
  
END


Con esto consigo que me vaya dibujando "puntitos" pero el problema esta en:

-Si mantengo presionado el raton y dibujo muy muy muy despacio si que se ve lo que yo estoy dibujando
-Si hago lo mismo pero lo hago mucho más rapido, entonces solo veo unos tristes puntos...

¿Alguien sabria indicarme como solucionar esto?

Edito 2:

Bueno ya lo he conseguido solucionar:

He añadido un Modulo y dentro de este he creado las variables RatonX y RatonY

PUBLIC RatonX AS Integer
PUBLIC RatonY AS Integer
 


y he modificado los siguientes eventos

PUBLIC SUB DrawingArea1_MouseDown()

Draw.Begin(DrawingArea1)

Module1.RatonX = Mouse.X
Module1.RatonY = Mouse.Y
END


PUBLIC SUB DrawingArea1_MouseMove()
  

  Draw.Line(Module1.RatonX, Module1.RatonY, Mouse.x, Mouse.Y)
  Module1.RatonX = Mouse.X
  Module1.RatonY = Mouse.Y
  Draw.LineWidth = 2
  
END
 


También he añadido que la linea sea algo más gruesa (para que se pueda ver mejor la firma)
 




===================
Saludos / Best Regards

Pedro Aguilar

http://edrossuse.blogspot.com
Desarrollador de LNXGEST
 
última edición por estrella_de_galicia el Domingo, 24 Enero 2010, 12:11; editado 2 veces 
estrella_de_galicia - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: [Solucionado] - DrawingArea ¿como Dibujar A Mano Alzada? 
 
Bueno aunque ya te has contestado te dejo el codigo que se me habia ocurrido a mi:




' gambas class file



PUBLIC xant AS Float
PUBLIC yant AS Float


PUBLIC SUB DrawingArea1_MouseMove()
 Draw.Begin(DrawingArea1)
 IF xant = 0 AND yant = 0 THEN
 draw.ForeColor = Color.blue
  Draw.line(Mouse.x + 1, Mouse.y + 1, Mouse.x, Mouse.y)
   xant = Mouse.x + 1
  yant = Mouse.y + 1
   Draw.LineWidth = 3
  Draw.END
 
 ELSE
 
   draw.ForeColor = Color.blue
  Draw.line(Mouse.x + 1, Mouse.y + 1, xant, yant)
  xant = Mouse.x + 1
  yant = Mouse.y + 1
   Draw.LineWidth = 3
  Draw.END
ENDIF
END

PUBLIC SUB DrawingArea1_MouseDown()

  xant = 0
   yant = 0

END
 


Y si creas un boton llamado Bguardarimagen, con este codigo puedes grabar la imagen del DrawingArea en un archivo .BMP


PUBLIC SUB Bguardarimagen_Click()
DIM destino AS String
DIM dibujo AS NEW Picture

dibujo = DrawingArea1.Grab()

Dialog.Title = "Escriba un nombre de archivo para guardar la imagen"

Dialog.Filter = ["*.BMP", "Datos en .BMP"]

IF NOT Dialog.SaveFile() THEN
IF Upper(Right$(Dialog.Path, 4)) <> ".BMP" THEN
destino = Dialog.Path & ".BMP"
ELSE
destino = Dialog.Path
END IF
dibujo.Save(destino)

END IF
END
 



Un saludo
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: [Solucionado] - DrawingArea ¿como Dibujar A Mano Alzada? 
 
mmm pues suena interesante eso de guardar en un BMP, de hecho ando buscando algo parecido... Lo único que tengo es una breve consulta:

En una base de datos MySQL el tipo de campo para guardar una imagen es ¿BLOB? o algo asi ¿no?
 




===================
Saludos / Best Regards

Pedro Aguilar

http://edrossuse.blogspot.com
Desarrollador de LNXGEST
 
estrella_de_galicia - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: [Solucionado] - DrawingArea ¿como Dibujar A Mano Alzada? 
 
Amigo, lo de dibujar está fantástico, pero lo de guardar la imagen, no me resulta, pues solo guarda el área que ocupa el Drawingarea más no lo graficado en él. ¿que podría hacer?
Otra cosa, ¿como podría rellenar con colores las figuras realizadas?
 



 
saej001 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: [Solucionado] - DrawingArea ¿como Dibujar A Mano Alzada? 
 
Citar:
no lo graficado en él. ¿que podría hacer?

Mirate la propiedad cached del drawing area, a ver si la tienes como false, cuando deberia de valer TRUE


Citar:
Otra cosa, ¿como podría rellenar con colores las figuras realizadas?

Mirate el libro de "Beginner Gambas version 3 el capitulo que se dedica a tema del dibujo (capitulo 12).

draw tiene un metodo para rellanar (FillStyle ), pero no se si puede aplicar a figuras realizadas por uno mismo.

Si no es así, tendrás que buscar algun algoritmo de programación para el relleno de imágenes.
Mírate este documento que lo explica: http://beginnersguidetogambas.com/

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Jueves, 13 Febrero 2014, 12:53; editado 2 veces 
Editado por jsbsan, Jueves, 13 Febrero 2014, 12:53: He actualizado la referencia al enlace donde esta el libro
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Bug En Drag & Drop: ¿como Informar? [... jsbsan General 2 Jueves, 23 Septiembre 2010, 17:49 Ver último mensaje
jsbsan
No hay nuevos mensajes Tengo Un Puzle... Alguien Me Puede Echar U... osunaosuna Aplicaciones/Fragmentos de Código 3 Lunes, 23 Junio 2014, 00:10 Ver último mensaje
osunaosuna
No hay nuevos mensajes Brochas. Pinceles. Errores Tipicos Al Dibu... Shell General 0 Domingo, 06 Agosto 2017, 00:41 Ver último mensaje
Shell
No hay nuevos mensajes Dibujar. Refresco Del DrawingArea Shell General 1 Sabado, 14 Abril 2018, 13:57 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron