Principal | Gráficos 3D | Gráficos 2D | Fractales | Math | Códigos | Tutoriales | Links
La definición del Conjunto de Julia es similar al Conjunto de Mandelbrot
Zn+1 = Zn2 + C
donde Z, C son números complejos
La constante compleja C, me determina el tipo de Conjunto de Julia.
El Conjunto de Julia se calcula de manera identica que el Conjunto de Mandelbrot, salvo que en este caso C es constante, y Z va tomando los diferentes puntos del plano complejo.
Represento los puntos que tienden a 0 en negro y los puntos que se van a infinito los represento de diferentes colores según la "velocidad" con que se van a infinito, es decir el número de iteraciones necesarias para salir.
En este caso utilizo C = -0.745 + 0.1i y obtengo las siguientes representaciónes a diferentes escalas de Zoom.
![]() |
xmin = -1.5, ymin = -1.5, xmax = 1.5, ymax = 1.5, Iteraciones = 256 |
---|
![]() |
xmin = 0.0, ymin = 0.0, xmax = 0.75, ymax = 0.75, Iteraciones = 256 |
---|
![]() |
xmin = 0.225, ymin = 0.2, xmax = 0.325, ymax = 0.3, Iteraciones = 256 |
---|
Si tomamos un C=0.3 + 0.6i obtenemos el siguiente Conjunto de Julia.
![]() |
xmin = -1.5, ymin = -1.5, xmax = 1.5, ymax = 1.5, Iteraciones = 256 |
---|
Si en cambio tomamos C=-0.12 + 0.75i, obtenemos.
![]() |
xmin = -1.5, ymin = -1.5, xmax = 1.5, ymax = 1.5, Iteraciones = 256 |
---|
En el código se debe poner lo siguiente para obtener los respectivos Conjuntos de Julia. Cuando : C = -0.745 + 0.1i tenemos ReC=-0.745 y ImC=0.1 C = 0.3 + 0.6i tenemos ReC=0.3 y ImC=0.6 C = -0.12 + 0.75i tenemos ReC=-0.12 y ImC=0.75 ya que C = ReC + ImCi. La formula iterativa del Conjunto de Julia la reescribimos tomando Z = ReZ + ImZi y C =ReC + ImCi y como Z = Z2 + C nos queda ReZ + ImZi = (ReZ + ImZi)2 + (ReC + ImCi) operando ReZ + ImZi = (ReZ*ReZ - ImZ*ImZ) + 2*ReZ*ImZi separo la parte real y la imaginaria. ReZ = ReZ*ReZ - ImZ*ImZ + ReC ImZ = 2*ReZ*ImZ + ImC para evaluar estas expreciones en el código utilice dos nuevas varibles Re2Z y Im2Z donde. Re2Z = ReZ*ReZ Im2Z = ImZ*ImZ con lo que me queda finalmente ReZ = Re2Z - Im2Z + ReC ImZ = 2*ReZ*ImZ |
Todas las imagenes de arriba fueron hechas con la siguiente rutina, el proyecto esta hecho en VisualBasic 5.0 y su código completo se encuentra en julia.zip ( 5 Kb) , no contiene el executable.
Private Sub AdjustAspect() Dim want_aspect As Single Dim canvas_aspect As Single Dim hgt As Single Dim wid As Single Dim mid As Single want_aspect = (ymax - ymin) / (xmax - xmin) canvas_aspect = screeny / screenx If want_aspect > canvas_aspect Then wid = (ymax - ymin) / canvas_aspect mid = (xmin + xmax) / 2 VisibleXmin = mid - wid / 2 VisibleXmax = mid + wid / 2 VisibleYmin = ymin VisibleYmax = ymax Else hgt = (xmax - xmin) * canvas_aspect mid = (ymin + ymax) / 2 VisibleYmin = mid - hgt / 2 VisibleYmax = mid + hgt / 2 VisibleXmin = xmin VisibleXmax = xmax End If End Sub Private Sub Julia() Dim ReZ, ImZ As Double Dim Re2Z, Im2Z As Double Dim Red, Green, Blue As Double Dim i, j As Integer Dim N As Integer AdjustAspect For i = 0 To screenx For j = 0 To screeny ReZ = ((VisibleXmax - VisibleXmin) / (screenx - 1)) * i + VisibleXmin ImZ = ((VisibleYmax - VisibleYmin) / (screeny - 1)) * j + VisibleYmin Re2Z = ReZ * ReZ Im2Z = ImZ * ImZ N = 0 Do While (N < MaxIterations) And (Re2Z + Im2Z < 4) Re2Z = ReZ * ReZ Im2Z = ImZ * ImZ ImZ = 2 * ReZ * ImZ + ImC ReZ = (Re2Z - Im2Z) + ReC N = N + 1 Loop If N = MaxIterations Then Red = 0# Green = 0# Blue = 0# Else Red = RGBColor(N, 0) Green = RGBColor(N, 1) Blue = RGBColor(N, 2) End If Picture1.PSet (i, screeny - j), RGB(Red, Green, Blue) Next j Next i End Sub |
valcoey@hotmail.com
Ramiro Alcocer, 2001
Principal | Gráficos 3D | Gráficos 2D | Fractales | Math | Códigos | Tutoriales | Links