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