Option Explicit
Private Function Pendiente( _
Byval x1 as Double, byval y1 as Double _
,byval x2 as Double,Byval y2 as Double) As Double
If x2 - x1 <> 0 Then
Pendiente = (y2 - y1) / (x2 - x1)
Else
Pendiente = 1
End If
End Function
Private Function PuntoPendiente_Get_Y( _
Byval x1 as Double, byval y1 as Double _
,byval x2 as Double,Byval y2 as Double , Byval X as Double) As Double
Dim d1 As Double, d2 As Double
d1 = Pendiente(x1, y1, x2, y2)
d2 = -d1 * x1 + y1
PuntoPendiente_Get_Y = d2 + d1 * X
End Function
Private Sub Mover(Byval Index as integer, Byval DestX as Double, Byval DestY As Double)
Dim dFromX As Double, dFromY as Double
dFromX = imgcarta(index).left + imgcarta(index).width /2
dFromY = imgcarta(index).top + imgcarta(index),Height / 2
Dim dX as double
For dX = dFromX To DestX
imgCarta(index).Move dX _
, PuntoPendiente_Get_Y(dFromX, dFromY, DestX, DestY, dX)
Next dX
End Sub