Quiero usar la programación VB para crear una animación en tiempo real. ¿Cómo lograrlo?
Solo usa una imagen o incluso nada, solo dibuja en el formulario.
Respuesta adicional:
La interfaz del siguiente código es colocar dos formas en el formulario, y los nombres son todos nombres predeterminados.
Opción explícita
Cantidad constante = 69, espacio entre líneas = 150, espacio entre columnas = 60, izquierda = 1300
Estado atenuado como entero, ancho del texto como único , La abscisa como única, la ordenada como única, la superior como única
Dim selecciona 1 como entero, selecciona 2 como única, el centro de la imagen izquierda como única, el centro de la imagen derecha como única , y el centro Como único
Atenuar usado a la izquierda (1 a cantidad) como booleano, usado a la derecha (1 a cantidad) como booleano, a la derecha como único
Sub privado Form_Click()
Si Timer1 .Enabled Entonces Salga Sub
Si Abs (abscisa - centro izquierda) < interlineado / 2 Entonces
Seleccione 1 = ordenada\interlineado + 1
Si está a la izquierda (seleccionado 1), entonces salga de Sub
Forma 1. Mover hacia el centro a la izquierda - interlineado / 4 + 15, (seleccionado 1 - 0,5) * interlineado - 15
Forma1. Visible = Verdadero
Si Estado = 2 Entonces
Medio = Centro de imagen izquierdo + Interlineado / 4 + 525 + Espaciado entre columnas * Seleccione 1
Timer1.Enabled = True
Else
Estado = 1
Fin si
ElseIf Abs (abscisa - centro derecha) < interlineado / 2 Luego
Seleccione 2 = coordenada vertical\ interlineado + 1
Si es correcto (seleccionado 2) Luego salga de Sub
Shape2.Mover a la derecha centro - interlineado/ 4 + 15, (Seleccione 2 - 0,5) * Interlineado - 15
Shape2.Visible = True
Si Estado = 1 Entonces
Medio = Centro de imagen izquierdo + Interlineado/4 + 525 + Espaciado entre columnas* Seleccionar 1
Temporizador1.Enabled = Verdadero
De lo contrario
Estado = 2
Finalizar si
Finalizar si
End Sub
Sub privado Form_DblClick()
Interfaz inicial
End Sub
Sub privado Form_Load()
Atenuar i como entero
Me.AutoRedraw = True
Me. Tamaño de fuente = 7
Ancho del texto = Ancho del texto("A12")
Alto = Cantidad * Interlineado + 800
Ancho = Cantidad
* Espaciado entre columnas + 2 * (Izquierda + interlineado + ancho del texto) + 1050
Arriba = 0
Izquierda = (Ancho.Pantalla - Ancho) / 2
Derecha = Ancho - Izquierda - ancho del texto
Centro de imagen izquierda = Izquierda + ancho de texto + interlineado
Centro de imagen derecha = Ancho - Centro de imagen izquierda
Con Forma1
.Forma = 3
.FillStyle = 0
.FillColor = RGB(128, 128, 128)
.Visible = False
.Height = Interlineado/2 - 15
.Width = Interlineado/2 - 15
Terminar con
Con Shape2
.Shape = 3
.FillStyle = 0
.FillColor = RGB(128, 128, 128)
.Visible = False
.Height = interlineado/2 - 15
.Width = interlineado/2 - 15
Terminar con
Me.Cls
Interfaz inicial
Timer1.Interval = 20
End Sub
Interfaz inicial Sub privada ()
Atenuar i como entero
Imprimir "Haga clic para seleccionar el nodo";
Imprimir "Haga doble clic para reiniciar".
"
Para i = 1 A cantidad
Top = (i - 1) * Interlineado
ActualY = Top
ActualX = Izquierda
Imprimir "A"; Formato(i, "00");
ActualX = Derecha
Imprimir "B"; " )
Me.Circle (centro izquierda, (i - 0,5) * interlineado), interlineado/4, vbRed
Me.Circle (centro derecha, (i - 0,5) ) * Interlineado), interlineado/4, vbBlue
Usado izquierda (i) = False
Usado derecha (i) = False
Siguiente i< / p>
Timer1.Enabled = False
End Sub
Sub privado Form_MouseMove(Botón como entero, Mayús como entero, X como único, Y como único)
Abscisa = , Paso Como Entero, i Como Entero
Seleccionar Caso Segmento De Línea
Caso 0
Paso = Paso + 1
Línea (imagen izquierda Corazón + interlineado / 4, (seleccione 1 - 0,5) * interlineado) - (imagen izquierda corazón + interlineado / 4 + paso * 30, (seleccione 1 - 0,5) * interlineado), RGB (20, 150, 20)
Si CurrentX >= Medio Entonces
Segmento de línea = 1
Paso = 0
Fin Si
Caso 1 p>
Paso = paso + 1
Si Seleccione 1 < Seleccione 2 Entonces
Línea (medio, (seleccione 1 - 0,5) * interlineado)-(medio, (seleccione 1 - 0,5) * Interlineado + paso * 30), RGB(20, 150, 20)
Si CurrentY >= (Seleccione 2 - 0,5 ) * Interlineado Entonces
Segmento de línea = 2
Paso = 0
Finalizar si
De lo contrario, seleccione 1 > Seleccione 2 entonces
Línea (Medio, (Seleccione 1 - 0,5) * interlineado)-(medio, (seleccionado 1 - 0,5) * interlineado - paso * 30)
, RGB(20, 150, 20)
Si ActualY <= (Seleccione 2 - 0,5) * Interlineado Entonces
Segmento de línea = 2
Paso = 0
Finalizar si
Si no
Segmento de línea = 2
Paso = 0
Finalizar si p>
Caso 2
Paso = paso + 1
Línea (media, (seleccionada 2 - 0,5) * interlineado)-(media + paso * 30, (seleccionada 2 - 0,5) * Interlineado), RGB(20, 150, 20)
Si CurrentX >= Centro de la imagen derecha - interlineado/4 Entonces
Segmento de línea= 3 p>
Paso= 0
Finalizar si
Caso 3
Usado izquierdo (seleccionado 1) = Verdadero
Usado derecho (seleccionado 2) = Verdadero
Segmento de línea = 0
Temporizador1.Enabled = Falso
Estado = 0
Forma1.Visible = Falso
Shape2.Visible = False
Selección final
Fin Sub