Advertisement
skotoseme

Untitled

Apr 25th, 2014
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.07 KB | None | 0 0
  1. q3RMHay.gif
  2.  
  3. from PIL import Image, ImageDraw
  4. light_pink = 'rgb(255,130,199)'
  5. blue_pink = 'rgb(220,130,1220)'
  6. bluer_pink = 'rgb(199,130,255)'
  7.  
  8. e = 2.718281828459045
  9.  
  10. # bell = [crazy_pdf(x,0,270) for x in range(-800,801)]; graf = graph(bell,500); graf.show()
  11.  
  12.  
  13. def af2():
  14.     global e
  15.     global light_pink
  16.     e = 0.01
  17.     frame_filename = 1
  18.     for i in range(101):
  19.         bell = [crazy_pdf(x,0,170) for x in range(-500,501)]
  20.         graf = graph(bell,350)
  21.         graf.save("pm_frames/frame%03d.bmp" % frame_filename)
  22.         e += 0.01
  23.         frame_filename += 1
  24.     print("Done!")
  25.  
  26. def graph2(points, height=1045):
  27.     global lightpink
  28.     graph = Image.new("RGBA",[len(points)+3, height+5],'rgb(0,0,0)')        
  29.     draw = ImageDraw.Draw(graph)               # ^ remove +2 for perfect fit
  30.     points = normalize(points, height)
  31.     points = round_all(points)
  32.     points = add_x(points)
  33.     points = fill_in(points)
  34.     for point in points:
  35.         #draw.point(point,light_pink)        
  36.         draw.point((point[0]+1,point[1]+2),light_pink)  # < remove
  37.         draw.point((point[0],point[1]+2),light_pink)
  38.         draw.point((point[0]+2,point[1]+2),light_pink)
  39.         draw.point((point[0]+1,point[1]+1),light_pink)
  40.         draw.point((point[0]+1,point[1]+3),light_pink)
  41.     #graph = graph.transpose(1)
  42.     return graph
  43.  
  44. ################### HERE THERE BE DRAGONS #######################
  45.  
  46. def af():
  47.     global e
  48.     e = 0.01
  49.     frame_filename = 1
  50.     for i in range(101):
  51.         bell = [crazy_pdf(x,0,170) for x in range(-500,501)]
  52.         graf = graph(bell,350)
  53.         graf.save("pm_frames/frame%03d.bmp" % frame_filename)
  54.         e += 0.01
  55.         frame_filename += 1
  56.     print("Done!")
  57.  
  58. def add_x(points):
  59.     x = 0
  60.     xy = []
  61.     for y in points:
  62.         xy.append((x,y))
  63.         x += 1
  64.     return xy
  65.    
  66. def fact(x):
  67.     if x == 0:
  68.         return 1
  69.     factorial = 1
  70.     for n in range (1, x+1):
  71.         factorial *= n
  72.     return factorial
  73.  
  74. def fill_in(points):
  75.     fills = []
  76.     for a in range(len(points)-1):
  77.         if abs(points[a+1][1]-points[a][1]) > 1:
  78.             sign = int(((points[a+1][1]-points[a][1])/abs((points[a+1][1]-points[a][1]))))
  79.             for point in range(1,abs(points[a+1][1]-points[a][1])):
  80.                 fills.append((points[a][0],points[a][1]+point*sign))
  81.     points.extend(fills)
  82.     return points
  83.  
  84. def graph(points, height=1045):
  85.     graph = Image.new("RGB",[len(points)+3, height+5],'rgb(0,0,0)')        
  86.     draw = ImageDraw.Draw(graph)               # ^ remove +2 for perfect fit
  87.     points = normalize(points, height)
  88.     points = round_all(points)
  89.     points = add_x(points)
  90.     points = fill_in(points)
  91.     for point in points:
  92.         #draw.point(point,light_pink)        
  93.         draw.point((point[0]+1,point[1]+2),light_pink)  # < remove
  94.         draw.point((point[0],point[1]+2),light_pink)
  95.         draw.point((point[0]+2,point[1]+2),light_pink)
  96.         draw.point((point[0]+1,point[1]+1),light_pink)
  97.         draw.point((point[0]+1,point[1]+3),light_pink)
  98.     #graph = graph.transpose(1)
  99.     return graph
  100.  
  101. def normalize(points, height):
  102.     height -= 1
  103.     new_points = []
  104.     mini = min(points)
  105.     for point in points:
  106.         new_points.append(point-mini)
  107.     newer_points = []
  108.     maxi = max(new_points)
  109.     for point in new_points:
  110.         newer_points.append(point*height/maxi)
  111.     return newer_points
  112.  
  113. ##def pdf(x,mu,sigma):
  114. ##    """probability density function"""
  115. ##    e = 2.718281828459045
  116. ##    pi = 3.141592653589793
  117. ##    f = (1/sigma*(2*pi)**(1/2))*e**(-1/2*((x-mu)/sigma)**2)
  118. ##    return f
  119.  
  120. def crazy_pdf(x,mu,sigma):
  121.     global e
  122.     pi = 3.141592653589793
  123.     f = (1/sigma*(2*1)**(1/2))*e**(-1/2*((x-mu)/sigma)**2)
  124.     return f
  125.  
  126. def round_all(points):
  127.     well_rounded = []
  128.     for point in points:
  129.         well_rounded.append(round(point))
  130.     return well_rounded
  131.  
  132. def sin(x,i=30):
  133.     """ x value is multiplied by pi """
  134.     x *= 3.141592653589793
  135.     sin = 0
  136.     for n in range(0,i):
  137.         sin += ( (-1)**n / fact(2*n+1) ) * x**(2*n+1)
  138.     return sin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement