Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 2 de 2
Ir a la página Anterior  1, 2
 
¿Cómo Dibujar Un Polígono En El Drawingarea??
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Dibujar Un Polígono En El Drawingarea?? 
 
kok:

El componente DrawingArea tiene una serie de eventos de ratón.

El evento Mouse_Down.

Cuando hagas click en el DrawingArea con el izquierdo un contador debe
contar las veces que haces click.

Usa una variable publica a todo el formulario en cuestión
La declaración de la variable no es PUBLIC, pero se reconoce
su identificador en todo el lugar que se encuentre.

Ejemplo.

PRIVATE contador AS Integer


PUBLIC SUB DrawingArea1_MouseDown()

 IF Mouse.Left THEN contador = contador + 1

 PRINT contador
 
END
 


Así cada vez que pulses el izquierdo, la variable contador almacenara el
numero de clicks que has hecho con el botón izquierdo.

Y PRINT te muestra por la consola las veces que has hecho click con el
botón izquierdo. Recuerda lo de la variable, el evento y la propiedad del ratón.

Aquí tienes información sobre la clase ratón.

http://gambasdoc.org/help/comp/gb.qt/mouse?en

Saludos.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Dibujar Un Polígono En El Drawingarea?? 
 
por mas que le de vueltas no se como hacer un cuadrado con ese codigo. He provado haciendo un bucle if diciendo que si el contador es igual a 4 clicks entonces haga el cuadrado pero nada de nada. ayuda por favor
 



 
kok - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Dibujar Un Polígono En El Drawingarea?? 
 
Kok:

Puedes poner lo que has hecho hasta el momento, asi te podemos ayudar a corregirlo y que tu lo puedas resolver...

Saludos
 




===================
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: ¿Cómo Dibujar Un Polígono En El Drawingarea?? 
 
PUBLIC valores AS NEW Integer[ ]
PUBLIC SUB DrawingArea1_MouseDown()

 
SELECT CASE variables.boton
CASE 1
IF variables.contador = 4 THEN
variables.valores.Add(Mouse.x)
    variables.valores.Add(Mouse.y)
    Draw.Begin(DrawingArea1)
    Draw.Foreground = Color.Green
    Draw.Circle(Mouse.x, Mouse.y, 4)
    Draw.End
     Draw.Begin(DrawingArea1)
    draw.Foreground = variables.micolor
    Draw.Polygon(variables.valores)
    PRINT variables.valores
    Draw.end
ENDIF

IF Mouse.Left THEN contador = contador + 1

PRINT contador

END

Se supone que al apretar un boton se tiene que ir al case especifico y luego con el ratón poder dibujar en cualquier parte del drawingarea un cuadrado,triangulo...
También estado mirando para poder borrar como si fuera una goma pero solo he consegido borrar todo el drawingarea..
 



 
kok - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Dibujar Un Polígono En El Drawingarea?? 
 
kok:
Citar:
Se supone que al apretar un boton se tiene que ir al case especifico y luego con el ratón poder dibujar en cualquier parte del drawingarea un cuadrado,triangulo...


Viendo tu codigo, creo que tienes un "batiburrillo" bantante grande, o no has pegado bien en el foro tu código, que tambien puede ser....


Pero vamos por partes:

¿que es "variables.boton"? No la tienes definida por ninguna parte....

Te faltan por lo menos otro "case" ya que solo tienes uno, y no puedes ir "....se tiene que ir al case especifico", como dices...de todos modos para lo que quieres hacer no necesitas usar un Select Case, con un if..then... lo puedes hacer...

¿sabes que es pseudocódigo?
Te adjunto como seria el pseudocódigo de lo que quieres hacer....

->Defines una variable que haga de contador (PUBLIC contador AS integer)
-> Defines una variable que vaya a contener los valores de las coordenadas mouse.x y mouse.y ( PUBLIC valores AS NEW Integer[])


-> El usuario hace click en el drawingArea1
-> El contador de puntos introducidos aumenta una unidad  
-> Se añade el nuevo punto: al array de valores, los valores de mouse.x y mouse.y
-> Haces una comparacion:
Si el contador es igual a 4 entonces
____pasa a dibujar el poligono formado por el array de valores
Sino
____dibuja un circulito de color verde en las coordenadas del mouse.x y mouse.y
Termina la comparacion "Si"

El programa queda a la espera de que reciba otro click en el drawingArea1


¿entiendes cual es el proceso? Ahora solo tienes que convertir este "pseudocódigo" a gambas... si tienes problemas para hacerlo lo preguntas.
                                  


Citar:
También estado mirando para poder borrar como si fuera una goma pero solo he consegido borrar todo el drawingarea..

Centrate en el problema de dibujar, y cuando lo tengas resuelto, ve al otro, porque sino te vas a liar mas...
Te comento que (creo)  borrar no existe, que lo que puedes hacer es pintar con el mismo color de fondo (y parece que borras) pero no es un autentico borrado... Para borrar realmente, deberias eliminar los datos del array donde guardas el poligono (eliminas dos valores por lo menos (x,y), que es un vertice del poligono... y redibujar el poligono, asi consigues borrar...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Viernes, 15 Junio 2012, 20:26; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Dibujar Un Polígono En El Drawingarea?? 
 
El problema esta en que el codigo que e copiado son trozos. Las variables estan en un  modulo y el case es un trozo solo lo que he copiado... voy a seguir dandole vueltas
 



 
kok - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Dibujar Un Polígono En El Drawingarea?? 
 
Ok, echale un vistazo a la explicion y al pseudocodigo, y nos comentas...
 




===================
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: ¿Cómo Dibujar Un Polígono En El Drawingarea?? 
 
poligonos regulares?


utiliza una circunferencia

si divides una circunferencia, en el numero de lados, tienes un poligono




 lados = 7 (cambindo este dato, tiene los poligonos regulares de x lados (pentagono =5, cuadrado 4, triangulo 3
  grande = 100 'tamaño de la figura en valores del radio de la circunferencia
 corx = 100 'cordenadas donde estará el centro x
 cory = 100 'cordenadas del centro y
FOR k = 0 TO 360 STEP 360 / lados  ' bucle para saber los puntos de corte de la circunferencia

punto (x1,y1,x2,y2)
 punto (Sin(Rad(k)) * grande + corx, Cos(Rad(k)) * grande + cory, Sin(Rad(k - 360 / lados)) * grande + corx, Cos(Rad(k - 360 / lados)) * grande + cory)

NEXT

y ya está
explicacion, el eno y el coseno, en una circunferencia goniometrica (radio =1), tiene unos valores cte, pero en intervalo de 1 y -1, por tanto, si multiplicas una cte por el valor del seno, y otra cte por el coseno, obtienes la ubicacion de cada punto


si haces un barrido por todos los grados, obtienes una circunferencia, si solo eliges x datos, tendras un poligono regular, ya que la circunferencia es un poligono regular de infinitos lados


Un saludo

pd. si el grande, poneis grandex y grandey, y los variais de valor, tendreis elipses
 



 
última edición por tururu el Viernes, 15 Junio 2012, 23:08; editado 2 veces 
tururu - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Imagen En Un Drawingarea nrcefe General 4 Jueves, 24 Septiembre 2009, 22:32 Ver último mensaje
nrcefe
No hay nuevos mensajes Ayuda Drawingarea kok Controles/Librerías/Componentes 15 Lunes, 28 May 2012, 16:11 Ver último mensaje
jsbsan
No hay nuevos mensajes Pintar En Un Drawingarea guadafan General 12 Domingo, 28 Julio 2013, 20:53 Ver último mensaje
guadafan
No hay nuevos mensajes Drawingarea + Dibuja Por Codigo + Exportar... tincho General 6 Domingo, 24 Enero 2016, 16:52 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 2 de 2
Ir a la página Anterior  1, 2

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