Pongo el código del programa, no es largo:
Código:
Bien, la duda que tengo es que el valor de la variable compleja z siempre me da 0j, es decir, me da cero; cuando hago correr el programa, lo cual es totalmente absurdo.#! /usr/bin/env/python
import sys
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
from OpenGL.GLE import *
from Numeric import *
def fractal():
x1 = 0.0
x2 = 10.0
y1 = 0.0
y2 = 10.0
p = 0.0
q = 0.0
k = 1
incrementop = (x2-x1)/(300.0-1.0)
incrementoq = (y2-y1)/(300.0-1.0)
while p<300.0:
while q<300.0:
po = x1 + p*incrementop
qo = y1 + q*incrementoq
z = complex(0.0, 0.0)
z1 = complex(po, qo)
while k<=40:
z = z*z + z1
print z
print abs(z)
if abs(z)>2:
glColor(1.0, 0.0, 0.0)
glVertex(po,qo)
k = k+1
q = q+1
p = p+1
def inicia():
# seleccionamos el color de fondo de ventana como negro
glClearColor (0.0, 0.0, 0.0, 1.0)
# Creamos la vista (proyeccion ortogonal)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(-170.0, 170.0, -170.0, 170.0, -170.0, 170.0)
def ver():
glClearColor(0.0,0.0,0.0,0.0)
fractal()
glutSwapBuffers()
return
glutInit(sys.argv)
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH)
glutInitWindowSize(400,400)
glutInitWindowPosition(100, 100)
glutCreateWindow("Fractal Mandlebrot")
inicia()
glutDisplayFunc(ver)
glutMainLoop()
Me gustaría que alguien me diese alguna luz de porqué pasa eso.
Aunque el código pueda parecer algo complicado es bastante sencillo, y el problema lo tengo en la línea que pone:
z = z*z+z1
Gracias


