Visual Basic - CREAR CIRCULO

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

CREAR CIRCULO

Publicado por monoloco (22 intervenciones) el 06/04/2017 20:47:27
Saludos quisiera que alguien me facilitara un codigo para hacer lo siguiente:
quiero dibujar un circulo con puntos es decir hacer como el segundero de un reloj analogico pero que me vaya pintando puntos en la circunferencia como si fuera una animacion de los segundos, espero haberme expresado correctamenteadjunto animacion donde se puede ver lo que quiero hacer pero con vbasic,, gracias por su ayuda
segund
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

CREAR CIRCULO

Publicado por Antoni Masana (558 intervenciones) el 07/04/2017 10:43:24
Hace tiempo hice un reloj digital en VB6 con sus doce posiciones de los números y las agujas desplazándose, además se podía redimensionar.

No recuerdo la instrucciones pero es es un problema de trigonometria aplicada. Debes usar las típicas funciones de Seno / Coseno.

El problema es bastante simple, solo hay que entender uns pocos conceptos:

- El reloj es un circulo.
- El centro del circulo esta donde se inician las agujas
- El angulo 0 no son las DOCE sino las 3

Un ejemplo cuando la aguja marca la 25 minutos tiene un angulo de 30% en el vértice ( A) del centro respecto al ángulo 0 que corresponde a la recta del minuto 15) y se forma un triangulo rectángulo. ( Vértice B 90ª)

Que sabemos:
- El angulo en el vertice del centro.
- La Hipotenusa que es igual al radio

Con estos datos ya podemos calcular el vertica C

1
2
3
4
5
6
7
8
9
(30º) A ____ B ( 45º)
        \  |
         \ |
          \|
          C (15ª)
 
A - es el centro de la circunferencia
B - Corresponde a la posición del minuto 15
C - Correspondería a la posición del minuto 25

Si estas muy interesado podria enviarte el reloj a tu correo.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

CREAR CIRCULO

Publicado por monoloco (22 intervenciones) el 07/04/2017 12:41:55
Muchas gracias por tu ayuda, si estoy interesado, aunque no entiendo de trigonometria, lo que quisiera conseguir esel efecto que se ve en la imagen que he adjuntado, ya tengo algunos ejemplos de reloj pero ninguno usa el segundero como yo deseo, de todos modos estudiare tu codigo, muchas gracias
segund
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

CREAR CIRCULO

Publicado por Andres Leonardo (1798 intervenciones) el 07/04/2017 18:14:40
Buenos dias,
Respetando los acertadisimos criterios y recomendaciones del Antoni a quien leo mucho sus respuestas , considero que lo que quiere el usuario del foro es solo geenrar el efecto .. visual nos presta la ayuda del timer .. claro que no sera preciso pero nos ayudara a generar este efecto

adjunto el codigo muy pequeño y de diseño MUY LIMITADO espero que tu lo puedas mejorar .... pero cumple con su comedido generar el efecto visual de un segundero..... cabe indicar que esto solo es como se generan las horas.... pero bueno eso es defincion de requerimiento .... espero te ayude


haciendolo rapido este es el codigo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim C As Integer
 
Private Sub Form_Load()
C = 0
End Sub
 
Private Sub Timer1_Timer()
    Shape3(C).Visible = True
    C = C + 1
        If C = 12 Then
            C = 0
            limpiar
        End If
End Sub
 
Sub limpiar()
Dim i As Integer
    For i = 1 To 11
    Shape3(i).Visible = False
    Next i
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

CREAR CIRCULO

Publicado por monoloco (22 intervenciones) el 07/04/2017 23:21:46
muchas gracias por su ayuda, ambos tienen razon en sus respuestas quiero hacer un reloj analogico con un efecto de animacion del segundero, una parte ya la he resuelto que es la animacion por medio del codigo que me ha puesto el señor andres leonardo, ahora me faltaria distribuir esa animacion en tiempo de ejecucion de forma que me cree un circulo es decir usando eso del seno y la trigonometria esa lo cual no tengo ni idea pues en lugar de algebra me dieron contabilidad en la escuela, en fin, espero que alguien me ayude facilitandome el codigo nesesario para ordenar los shapes de modo que formen una circunferencia, muchas gracias a todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

CREAR CIRCULO

Publicado por Andres Leonardo (1798 intervenciones) el 08/04/2017 15:54:25
haber vamos por partes......

Si quieres hacer un reloj con efecto en el segundero .... el tema estara siempre que seran 60 Ciclos (60 segundos) en el esquema que te di solo hay 12 ( obvio por las horas....) en ese caso.... debemos esquematizar Bien el tema .... vas a hacer que ese efecto se realice cada 5 segundos asi que se complete los 60 ciclos... estamos claros?

yo desearia que mas bien clarifiques el tema ... por que aunque no lo creas .. deben existir relojes analogos en vb ... pero lo importante es que tu esquematices correctamente su necesidad o tu definicion dle reloj a fin de que puedas tomaar de otros codigos el ejemplo ... y adaptar el efecto segundero que quieres


**Recuerda para el reloj Siempre

60 segundos -0- 59
60 minutos 0- 59
24 horas 0-23

Espero te ayude.---

LO del seno y coseno lo vi asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Form_Load()
linesec.X1 = Cos((Second(Now) * 3.14 / 30) - 3.14 / 2) * 1400 + linesec.X2
linesec.Y1 = Sin((Second(Now) * 3.14 / 30) - 3.14 / 2) * 1400 + linesec.Y2
Linemin.X1 = Cos((Minute(Now) * 3.14 / 30) - 3.14 / 2) * 1100 + Linemin.X2
Linemin.Y1 = Sin((Minute(Now) * 3.14 / 30) - 3.14 / 2) * 1100 + Linemin.Y2
Linehour.X1 = Cos(((Hour(Now) * 30) + Minute(Now) / 2) * 3.14 / 180 - 3.14 / 2) * 700 + Linehour.X2
Linehour.Y1 = Sin(((Hour(Now) * 30) + Minute(Now) / 2) * 3.14 / 180 - 3.14 / 2) * 700 + Linehour.Y2
Label5.Caption = Time
End Sub
Private Sub Timer1_Timer()
linesec.X1 = Cos((Second(Now) * 3.14 / 30) - 3.14 / 2) * 1400 + linesec.X2
linesec.Y1 = Sin((Second(Now) * 3.14 / 30) - 3.14 / 2) * 1400 + linesec.Y2
Linemin.X1 = Cos((Minute(Now) * 3.14 / 30) - 3.14 / 2) * 1100 + Linemin.X2
Linemin.Y1 = Sin((Minute(Now) * 3.14 / 30) - 3.14 / 2) * 1100 + Linemin.Y2
Linehour.X1 = Cos(((Hour(Now) * 30) + Minute(Now) / 2) * 3.14 / 180 - 3.14 / 2) * 700 + Linehour.X2
Linehour.Y1 = Sin(((Hour(Now) * 30) + Minute(Now) / 2) * 3.14 / 180 - 3.14 / 2) * 700 + Linehour.Y2
Label5.Caption = Time
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

CREAR CIRCULO

Publicado por monoloco (22 intervenciones) el 09/04/2017 16:49:09
Muchisimas gracias por tomarse la molestia de responderme y crearme un codigo para que me pueda servir en mi proposito, si no es mucha molestia le agradeceria que si puede ser me ponga comentarios en las diferentes lineas del codigo para asi poder comprender algo mejor lo que hace en el programa dicha linea, perdon por las molestias y nuevamente muchisimas gracias por la ayuda prestada en cuanto me sea posible me pondre a estudiarlo y aplicarlo al proyecto que tengo en mente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

CREAR CIRCULO

Publicado por Antoni Masana (558 intervenciones) el 10/04/2017 08:49:21
Te envío 5 versiones del mismo programa. la versión 0 es la básica en las demás he incluido nuevos detalles tales como el día del mes, el de la semana y redimensionar el cuadro.

El reloj tiene una corona con los números para las horas y unas rayas y círculos para los minutos. La parte del codigo que te puede interesar más es la puesta en escena de los circulos para calcular su posición.

Son mis primeros pasos en Visual Basic 6. y supongo que la programación es superable.

Saludos.
\\//_
\\//
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

CREAR CIRCULO

Publicado por monoloco (22 intervenciones) el 11/04/2017 08:02:20
Muchas gracias, en cuanto tenga tiempo me pondre a estudiarlospara intentar aplicarlos a mi proyecto, muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar