[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/bjd1111/python/master/pythonchallenge/31.py [Back]  [Original]

# -*- coding: UTF-8 -*-
import Image
import urllib

ufo_1 = Image.open('mandelbrot.gif')
def mandelbrot(left=0.34, bottom=0.57, width=0.036, height=0.027,
               max=128, size=(640, 480)):
    xstep = width / size[0]
    ystep = height / size[1]
    for y in xrange(size[1] - 1, -1, -1):
        for x in xrange(size[0]):
            c = complex(left + x * xstep, bottom + y * ystep)
            z = 0+0j
            for i in xrange(max):
                z = z * z + c
                if abs(z) > 2:
                    break
            yield i

#
ufo_2 = ufo_1.copy()
ufo_2.putdata(list(mandelbrot()))
ufo_2.show()
#
differences = [(a - b) for a, b in zip(ufo_1.getdata(), ufo_2.getdata()) if a != b]
#
plot = Image.new('1', (23, 73))
plot.putdata([i < 16 for i in differences])
#10
plot.resize((230, 730)).show()


"""
def mandelbrot():
    size = (640,480)
    palette = [(50,5,50),(100,186,5),(150,45,12),(200,74,35)]
    img = Image.new('RGB',size)
    for Py in xrange(size[1]):
        for Px in xrange(size[0]):
            x0 = (Px - size[0]/2.0)*4.0/size[0]
            y0 = (Py - size[1]/2.0)*4.0/size[1]
            x = 0
            y = 0
            iteration = 0
            max_iteration = 100
           
            while x*x + y*y < 2*2  and  iteration < max_iteration: 

                xtemp = x*x - y*y + x0
                y = 2*x*y + y0
                x = xtemp
                iteration = iteration + 1
                color = palette[iteration%4]
            
            img.putpixel((Px,Py), color)
    img.show()
  
mandelbrot()


"""


'''
import numpy as np
import pylab as pl
import time
from matplotlib import cm

def iter_point(c):
    z = c
    for i in xrange(1, 100): # 100
        if abs(z)>2: break # 2
        z = z*z+c
    return i # 
    
def draw_mandelbrot(cx, cy, d):
    """
    (cx, cy)dMandelbrot
    """
    x0, x1, y0, y1 = cx-d, cx+d, cy-d, cy+d 
    y, x = np.ogrid[y0:y1:200j, x0:x1:200j]
    c = x + y*1j
    start = time.clock()
    mandelbrot = np.frompyfunc(iter_point,1,1)(c).astype(np.float)
    print "time=",time.clock() - start
    pl.imshow(mandelbrot, cmap=cm.Blues_r, extent=[x0,x1,y0,y1])
    pl.gca().set_axis_off()
    
x,y = 0.27322626, 0.595153338

pl.subplot(231)
draw_mandelbrot(-0.5,0,1.5)
for i in range(2,7):    
    pl.subplot(230+i)
    draw_mandelbrot(x, y, 0.2**(i-1))
pl.subplots_adjust(0.02, 0, 0.98, 1, 0.02, 0)
pl.show()
'''

Web Proxy Viewer  |  New URL  |  Original Page