TU ANUNCIO / YOUR PUBLICITY

AQUÍ PODRÍA ESTAR TU ANUNCIO: / HERE COULD BE YOUR AD E-mail

jueves, 9 de julio de 2015

Bubble-center, triangles.II / Burbu-centro en un triángulo.II

Para terminar con nuestro artículo vamos a necesitar hacer un poco de trampa. Hay que dedicar un tiempo a estudiar qué se hizo en el pasado con este problema. Encontraremos tres nombres propios Apolonio, Descartes y Soddy.

Apolonio de Perge (262-190 aC)


Los problemas de Apolonio (https://es.wikipedia.org/wiki/Problema_de_Apolonio) consisten en encontrar la circunferencia tangente a tres circunferencias dadas. Se tratan también los casos especiales en que alguna(s) de las circunferencias tienen radio cero (puntos) o infinito (rectas).

En nuestro caso se trataría de la resolución de tres circunferencias de radio no nulo y finito. Estos casos han trascendido hasta nuestros días. Aun siguen siendo imprescindibles en el estudio de Dibujo Técnico en Carreras Universitarias. Sobre todo, por la aplicación de conceptos como potencia e inversión.

René Descartes (1596-1650)


El teorema de los círculos de Descartes nos dará la clave del éxito de nuestro problema. Véase la página de la Wikipedia: https://es.wikipedia.org/w/index.php?title=Teorema_de_los_c%C3%ADrculos_de_Descartes&redirect=no. Es más completa la versión en ingés: https://en.wikipedia.org/wiki/Descartes%27_theorem

La formulación de las relaciones de los radios en juego es muy esplícita:

Siendo:
 ki=1/r
 r1..3 = radios de las cirfunferencias a tangenciar
 r4 = radios de la cirfunferencia tangente a las anteriores

Se cumple que:

(k1+k2+k3+k4)2=2(k12+k22+k32+k42)

Despejando k4:

k4 = k1+k2+k3 ± 2(k1k2+k2k3+k3k1)1/2

La genialidad llega cuando consideramos zi=xi+yii siendo las parejas (xi,yi) las coordenadas de los centros de cada círculo.

Las relaciones anteriores pasan a ser:

(k1z1+k2z2+k3z3+k4z4)2=2(k12z12+k22z22+k32z32+k42z42)

y:

z4 = [ k1z1+k2z2+k3z3 ± 2(k1z1k2z2+k2z2k3z3+k3z3k1z1)1/2] / k4


Frederick Soddy (1877-1956)


El caso de los circunferencia tangente a otras tres tangentes también fue estudiado por Frederick Soddy. Un premio Nobel en Química (1921) poco conocido. Recomiendo visitar https://ztfnews.wordpress.com/2014/07/28/el-beso-preciso-del-quimico-frederick-soddy/ y estudiar su trabajo. Muy interesante. Como todas las biografías de los grandes genios de entre-guerras.

Como obtener el centro y radio de forma práctica


Después de las pistas dadas por Descartes ya estamos en disposición de resolver nuestro problema:

Sub Circulos(ByVal a As Double, ByVal b As Double, ByVal c As Double, ByVal d As Double, ByVal e As Double, ByVal f As Double, ByVal Ind As Integer)
Dim x(3), y(3), r(3), u(3), v(3), p(3), q(3) As Double
Ind = Ind - 1
k = 0:x(1) = a:y(1) = b:x(2) = c:y(2) = d:x(3) = e:y(3) = f
s = (Dist(x(1), y(1), x(2), y(2)) + Dist(x(2), y(2), x(3), y(3)) + Dist(x(3), y(3), x(1), y(1))) / 2
r(1) = s - Dist(x(3), y(3), x(2), y(2))
r(2) = s - Dist(x(1), y(1), x(3), y(3))
r(3) = s - Dist(x(1), y(1), x(2), y(2))
For i = 1 To 3
  j = i + 1
  If j >= 4 Then j = 1
  Picture1.Line (x(i), y(i))-(x(j), y(j)), QBColor(8)
  Picture1.Circle (x(i), y(i)), r(i), colore
Next i
If Ind <= 0 Then Exit Sub 'Para evitar recursividad infinita

Inicio de lka fórmula de Descartes
k1 = 1 / r(1):k2 = 1 / r(2):k3 = 1 / r(3)
K41 = k1 + k2 + k3 + 2 * Sqr(k1 * k2 + k2 * k3 + k3 * k1)
'K42 = k1 + k2 + k3 - 2 * Sqr(k1 * k2 + k2 * k3 + k3 * k1)
'La segunda solución no se utiliza (círculo exterior)
z(1) = 0:z(2) = 0: 'z se ha definido como matriz de numeros reales de forma global
n1 = x(1) * k1 + x(2) * k2 + x(3) * k3
n2 = y(1) * k1 + y(2) * k2 + y(3) * k3
Multiplicar x(1), y(1), x(2), y(2) 'llamada a la función de multiplicación de números complejos
M1 = z(1) * k1 * k2:M2 = z(2) * k1 * k2:Multiplicar x(2), y(2), x(3), y(3)
M1 = M1 + z(1) * k2 * k3:M2 = M2 + z(2) * k2 * k3:Multiplicar x(3), y(3), x(1), y(1)
M1 = M1 + z(1) * k1 * k3:M2 = M2 + z(2) * k1 * k3

Exponente M1, M2, 0.5, 0 'llamada a la función de esponenciación compleja

H1 = 2 * z(1):H2 = 2 * z(2)
o1 = (n1 + H1) / K41:o2 = (n2 + H2) / K41

Picture1.Circle (o1, o2), Abs(1 / K41), 16000000 * Rnd

'Llamadas siguientes
Circulos o1, o2, x(2), y(2), x(3), y(3), Ind
Circulos x(1), y(1), o1, o2, x(3), y(3), Ind
Circulos x(1), y(1), x(2), y(2), o1, o2, Ind


End Sub

Se han de definir las siguientes funciones:

Function Dist(ByVal a0 As Double, ByVal a1 As Double, ByVal a2 As Double, ByVal a3 As Double) As Double
Dist = Sqr((a0 - a2) ^ 2 + (a1 - a3) ^ 2)
End Function

Sub Multiplicar(ByVal a As Double, ByVal b As Double, ByVal c As Double, ByVal d As Double)
z(1) = a * c - b * d
z(2) = a * d + c * b
End Sub

Sub Exponente(ByVal a As Double, ByVal b As Double, ByVal c As Double, ByVal d As Double)
           f = c * Log(Sqr(a * a + b * b)) - d * Atn2(b, a)
           g = c * Atn2(b, a) + d * Log(Sqr(a * a + b * b))
z(1) = Cos(g) * Exp(f)
z(2) = Sin(g) * Exp(f)
End Sub

Function Atn2(ByVal y As Double, ByVal x As Double) As Double
vbpi = Atn(1) * 4
    On Error GoTo derror
    Atn2 = Atn(y / x)
    If (x < 0) Then
        If (y < 0) Then Atn2 = Atn2 - vbpi Else Atn2 = Atn2 + vbpi
    End If
    Exit Function
derror:
    If Abs(y) > Abs(x) Then
        If y > 0 Then Atn2 = vbpi / 2 Else Atn2 = -vbpi / 2
    Else
        Atn2 = 0 
    End If
    Resume Next
End Function

Muestras de lo que obtendremos:








Habrá que seguir buscando y/o descubriendo más propiedades de estos burbucentros.




No hay comentarios:

Publicar un comentario