Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- q3RMHay.gif
- from PIL import Image, ImageDraw
- light_pink = 'rgb(255,130,199)'
- blue_pink = 'rgb(220,130,1220)'
- bluer_pink = 'rgb(199,130,255)'
- e = 2.718281828459045
- # bell = [crazy_pdf(x,0,270) for x in range(-800,801)]; graf = graph(bell,500); graf.show()
- def af2():
- global e
- global light_pink
- e = 0.01
- frame_filename = 1
- for i in range(101):
- bell = [crazy_pdf(x,0,170) for x in range(-500,501)]
- graf = graph(bell,350)
- graf.save("pm_frames/frame%03d.bmp" % frame_filename)
- e += 0.01
- frame_filename += 1
- print("Done!")
- def graph2(points, height=1045):
- global lightpink
- graph = Image.new("RGBA",[len(points)+3, height+5],'rgb(0,0,0)')
- draw = ImageDraw.Draw(graph) # ^ remove +2 for perfect fit
- points = normalize(points, height)
- points = round_all(points)
- points = add_x(points)
- points = fill_in(points)
- for point in points:
- #draw.point(point,light_pink)
- draw.point((point[0]+1,point[1]+2),light_pink) # < remove
- draw.point((point[0],point[1]+2),light_pink)
- draw.point((point[0]+2,point[1]+2),light_pink)
- draw.point((point[0]+1,point[1]+1),light_pink)
- draw.point((point[0]+1,point[1]+3),light_pink)
- #graph = graph.transpose(1)
- return graph
- ################### HERE THERE BE DRAGONS #######################
- def af():
- global e
- e = 0.01
- frame_filename = 1
- for i in range(101):
- bell = [crazy_pdf(x,0,170) for x in range(-500,501)]
- graf = graph(bell,350)
- graf.save("pm_frames/frame%03d.bmp" % frame_filename)
- e += 0.01
- frame_filename += 1
- print("Done!")
- def add_x(points):
- x = 0
- xy = []
- for y in points:
- xy.append((x,y))
- x += 1
- return xy
- def fact(x):
- if x == 0:
- return 1
- factorial = 1
- for n in range (1, x+1):
- factorial *= n
- return factorial
- def fill_in(points):
- fills = []
- for a in range(len(points)-1):
- if abs(points[a+1][1]-points[a][1]) > 1:
- sign = int(((points[a+1][1]-points[a][1])/abs((points[a+1][1]-points[a][1]))))
- for point in range(1,abs(points[a+1][1]-points[a][1])):
- fills.append((points[a][0],points[a][1]+point*sign))
- points.extend(fills)
- return points
- def graph(points, height=1045):
- graph = Image.new("RGB",[len(points)+3, height+5],'rgb(0,0,0)')
- draw = ImageDraw.Draw(graph) # ^ remove +2 for perfect fit
- points = normalize(points, height)
- points = round_all(points)
- points = add_x(points)
- points = fill_in(points)
- for point in points:
- #draw.point(point,light_pink)
- draw.point((point[0]+1,point[1]+2),light_pink) # < remove
- draw.point((point[0],point[1]+2),light_pink)
- draw.point((point[0]+2,point[1]+2),light_pink)
- draw.point((point[0]+1,point[1]+1),light_pink)
- draw.point((point[0]+1,point[1]+3),light_pink)
- #graph = graph.transpose(1)
- return graph
- def normalize(points, height):
- height -= 1
- new_points = []
- mini = min(points)
- for point in points:
- new_points.append(point-mini)
- newer_points = []
- maxi = max(new_points)
- for point in new_points:
- newer_points.append(point*height/maxi)
- return newer_points
- ##def pdf(x,mu,sigma):
- ## """probability density function"""
- ## e = 2.718281828459045
- ## pi = 3.141592653589793
- ## f = (1/sigma*(2*pi)**(1/2))*e**(-1/2*((x-mu)/sigma)**2)
- ## return f
- def crazy_pdf(x,mu,sigma):
- global e
- pi = 3.141592653589793
- f = (1/sigma*(2*1)**(1/2))*e**(-1/2*((x-mu)/sigma)**2)
- return f
- def round_all(points):
- well_rounded = []
- for point in points:
- well_rounded.append(round(point))
- return well_rounded
- def sin(x,i=30):
- """ x value is multiplied by pi """
- x *= 3.141592653589793
- sin = 0
- for n in range(0,i):
- sin += ( (-1)**n / fact(2*n+1) ) * x**(2*n+1)
- return sin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement