From 0c71015e3c2f6f1a43be8cbfaacce19626c2ee15 Mon Sep 17 00:00:00 2001 From: Marc Date: Wed, 2 Oct 2019 18:10:36 +0200 Subject: [PATCH] added mandelbrot stuff, changed draw and fourier and added an effective interpolation program for fourier transform --- .../geometry/version4/body test1.py | 2 +- .../geometry/version4/fermi's elephant.py | 36 +++++ Game Structure/geometry/version4/mybody.py | 35 ++++- Game Structure/geometry/version4/mycontext.py | 45 ++++--- Game Structure/geometry/version4/mydraw.py | 4 +- Game Structure/geometry/version4/myfourier.py | 113 +++++++++++++--- .../geometry/version4/myimmutablebody.py | 14 ++ .../geometry/version4/myinterpolation.py | 127 ++++++++++++++++++ .../geometry/version4/mymandelbrot.py | 123 +++++++++++++++++ .../geometry/version4/mymathgraph.py | 14 ++ .../geometry/version4/mynewgrapher.py | 10 +- Game Structure/geometry/version4/myplane.py | 14 +- .../geometry/version4/oldmandelbrot.py | 4 +- Game Structure/geometry/version4/output.png | Bin 0 -> 89073 bytes Game Structure/geometry/version4/test3.py | 26 +++- Mandelbrot/colors.py | 74 ++++++++++ Mandelbrot/mandelbrot pygame.py | 52 +++++++ Mandelbrot/mandelbrot tools.py | 87 ++++++++++++ Mandelbrot/mandelbrot1.py | 46 +++++++ Mandelbrot/mandelbrot2 bis.py | 31 +++++ Mandelbrot/mandelbrot2.py | 58 ++++++++ Mandelbrot/output.png | Bin 0 -> 50302 bytes 22 files changed, 857 insertions(+), 58 deletions(-) create mode 100644 Game Structure/geometry/version4/fermi's elephant.py create mode 100644 Game Structure/geometry/version4/myimmutablebody.py create mode 100644 Game Structure/geometry/version4/myinterpolation.py create mode 100644 Game Structure/geometry/version4/mymandelbrot.py create mode 100644 Game Structure/geometry/version4/mymathgraph.py create mode 100644 Game Structure/geometry/version4/output.png create mode 100644 Mandelbrot/colors.py create mode 100644 Mandelbrot/mandelbrot pygame.py create mode 100644 Mandelbrot/mandelbrot tools.py create mode 100644 Mandelbrot/mandelbrot1.py create mode 100644 Mandelbrot/mandelbrot2 bis.py create mode 100644 Mandelbrot/mandelbrot2.py create mode 100644 Mandelbrot/output.png diff --git a/Game Structure/geometry/version4/body test1.py b/Game Structure/geometry/version4/body test1.py index 4d7b47d..6c96833 100644 --- a/Game Structure/geometry/version4/body test1.py +++ b/Game Structure/geometry/version4/body test1.py @@ -1,4 +1,4 @@ -from mysurface import Surface +from mycontext import Surface from mybody import Body from myabstract import Form,Point,Vector from mymotion import Motion diff --git a/Game Structure/geometry/version4/fermi's elephant.py b/Game Structure/geometry/version4/fermi's elephant.py new file mode 100644 index 0000000..6a9abad --- /dev/null +++ b/Game Structure/geometry/version4/fermi's elephant.py @@ -0,0 +1,36 @@ +import numpy as np +import pylab + +# elephant parameters +p1, p2, p3, p4 = (50 - 30j, 18 + 8j, 12 - 10j, -14 - 60j ) +p5 = 40 + 20j # eyepiece + +def fourier(t, C): + f = np.zeros(t.shape) + A, B = C.real, C.imag + for k in range(len(C)): + f = f + A[k]*np.cos(k*t) + B[k]*np.sin(k*t) + return f + +def elephant(t, p1, p2, p3, p4, p5): + npar = 6 + Cx = np.zeros((npar,), dtype='complex') + Cy = np.zeros((npar,), dtype='complex') + + Cx[1] = p1.real*1j + Cx[2] = p2.real*1j + Cx[3] = p3.real + Cx[5] = p4.real + + Cy[1] = p4.imag + p1.imag*1j + Cy[2] = p2.imag*1j + Cy[3] = p3.imag*1j + + x = np.append(fourier(t,Cx), [-p5.imag]) + y = np.append(fourier(t,Cy), [p5.imag]) + + return x,y + +x, y = elephant(np.linspace(0,2*np.pi,1000), p1, p2, p3, p4, p5) +pylab.plot(y,-x,'.') +pylab.show() diff --git a/Game Structure/geometry/version4/mybody.py b/Game Structure/geometry/version4/mybody.py index cff3aa3..059ec57 100644 --- a/Game Structure/geometry/version4/mybody.py +++ b/Game Structure/geometry/version4/mybody.py @@ -7,6 +7,7 @@ import pygame import logging import copy import mycolors +import random # Interface Anatomy # - show(context) //an anatomy must be responsible for drawing itself @@ -36,17 +37,22 @@ class Body(Material): return Body(form,motion,moment) def createFromAbsolute(form,motion=Motion(),moment=Motion(d=1)): - """Create a body from an absolute form.""" + """Create a body from an absolute form using its motion and its angular moment.""" motion.position=Vector(*form.center) form.points=(-motion.position).applyToPoints(form.points) return Body(form,motion,moment) def __init__(self,form,motion=Motion(d=2),moment=Motion(d=1)): - """Create body using form and optional name.""" + """Create body using its anatomy, its motion and its angular moment. + #Attributes: + #self.form,self.motion,self.moment + #Properties: + #self.absolute""" self.form=form self.motion=motion self.moment=moment + def __str__(self): """Return the string representation of the body.""" return "b("+str(self.form)+","+str(self.motion)+")" @@ -105,11 +111,12 @@ class Body(Material): class PhysicalBody(Body): def __init__(self,form,motion=Motion(d=2),moment=Motion(d=1),mass=1): """Create body using form and optional name.""" - self.form=form - self.motion=motion - self.moment=moment + super().__init__(form,motion,moment) self.mass=mass + def __str__(self): + """Return the string representation of a physical body.""" + return "p"+super().__str__() @@ -117,5 +124,19 @@ class PhysicalBody(Body): if __name__=="__main__": - from mysurface import Surface - surface=Surface(fullscreen=True) + from mycontext import Context + context=Context(fullscreen=False) + ru=random.uniform + form1=Form.random(n=4) + motion1=Motion(Vector(0,0),Vector(ru(-1,1),ru(-1,1)),Vector(0,0)) + moment1=Motion(Vector([0]),Vector([ru(-1,1)]),Vector([0])) + b1=Body(form1,motion1,moment1) + #b=Body.random() + while context.open: + context.check() + context.clear() + context.show() + context.control() + b1.show(context) + b1.update(0.1) + context.flip() diff --git a/Game Structure/geometry/version4/mycontext.py b/Game Structure/geometry/version4/mycontext.py index 9073eab..4e6d3ed 100644 --- a/Game Structure/geometry/version4/mycontext.py +++ b/Game Structure/geometry/version4/mycontext.py @@ -7,6 +7,11 @@ import mycolors class Context(Rect): + def createFromSizeAndCorners(size,corners,**kwargs): + c=Context(size=size,**kwargs) + c.corners=corners + return c + def __init__(self,draw=None,**kwargs): """Create a context.""" if not draw: self.draw=Draw(**kwargs) @@ -64,11 +69,11 @@ class Context(Rect): def getSize(self): """Return the size of the surface shown.""" - return self.draw.plane.getSize() + return self.draw.window.size def setSize(self,size): """Set the size of the surface shown.""" - self.draw.plane.setSize(size) + self.draw.window.size=size def getUnits(self): """Return the units of the surface shown.""" @@ -98,6 +103,10 @@ class Context(Rect): self.draw.plane.show(self.draw.window) self.flip() + def __contains__(self,position): + """Determine if a position is in the context.""" + return self.draw.plane.contains(position,self.draw.window) + def show(self): """Show the plane on screen.""" self.draw.plane.show(self.draw.window) @@ -155,7 +164,7 @@ class Context(Rect): def transform(self,image,size): """Change the size of an image.""" - pass + return self.draw.window.transform(image,size) def getOpen(self): return self.draw.window.open @@ -179,21 +188,21 @@ class Context(Rect): if self.open: self.__enter__() - def getXmin(self): - """Return xmin.""" - return self.corners[0] + def getWidth(self): + """Return the width of the window.""" + return self.size[0] - def setXmin(self,x): - """Set xmin.""" - self.corners[0]=x + def setWidth(self,width): + """Set the width of the window.""" + self.size[0]=width - def getXmax(self,x): - """Get xmax.""" - return self.corners[2] + def getHeight(self): + """Return the height of the window.""" + return self.size[1] - def setXmax(self,x): - """Set xmax.""" - self.corners[2]=x + def setHeight(self,height): + """Set the height of the window.""" + self.size[1]=height corners=property(getCorners,setCorners,"Allow the user to manipulate the corners of the surface easily.") rect=property(getRect,setRect,"Allow the user to manipulate the rect of the surface easily.") @@ -203,8 +212,8 @@ class Context(Rect): units=property(getUnits,setUnits,"Allow the user to manipulate the units of the surface easily.") keys=property(getKeys,"Allow the user to manipulate the keys of the surface easily.") open=property(getOpen,setOpen) - xmin=property(getXmin,setXmin) - xmax=property(getXmax,setXmax) + width=property(getWidth,setWidth) + height=property(getHeight,setHeight) @@ -213,4 +222,6 @@ Surface=Context if __name__=="__main__": context=Context() + context.corners=[0,0,1,1] + print(context.corners) context() diff --git a/Game Structure/geometry/version4/mydraw.py b/Game Structure/geometry/version4/mydraw.py index 64d2c84..214ee44 100644 --- a/Game Structure/geometry/version4/mydraw.py +++ b/Game Structure/geometry/version4/mydraw.py @@ -100,9 +100,11 @@ class Draw: size=rect[2:] position=self.plane.getToScreen(position,self.window) size=self.plane.getToScreen(size,self.window) - self.window.draw.arcarc(screen,color,rect,start_angle,stop_angle,width) + self.window.draw.arc(screen,color,rect,start_angle,stop_angle,width) + def complex(self,screen,color,z,radius,**kwargs): + self.circle(screen,color,(z.real,z.imag),radius,**kwargs) def show(self): self.plane.showGrid(self.window) diff --git a/Game Structure/geometry/version4/myfourier.py b/Game Structure/geometry/version4/myfourier.py index 85ce873..62bb03d 100644 --- a/Game Structure/geometry/version4/myfourier.py +++ b/Game Structure/geometry/version4/myfourier.py @@ -24,18 +24,13 @@ class Fourier: self.graph_drawing=[] self.graph_construction=[] self.graph_display=[] - self.sample_precision=100 - self.coefficients_number=100 - self.display_number=100 - self.period=100 + self.mode=0 self.messages=['drawing', 'construction', 'display'] self.coefficients=[] self.context.text.append("mode: "+self.messages[self.mode]) - self.duration=None - self.time=0 + self.max_step=100 self.step=0 - self.speed=1/100 self.vectors=[] def __call__(self): @@ -72,12 +67,11 @@ class Fourier: # self.graph_interpolation=self.sample(self.function_interpolation,len(self.graph_drawing)) elif self.mode==1: #construction self.step+=1 - self.time=self.speed*self.step - #print(self.time/self.duration) - if self.duration is not None: - if self.time>self.duration: - self.mode=2 - self.graph_construction=self.discreteComplexComposeGraph(self.coefficients,self.time) #complex now + self.time=self.step/self.max_step + if self.step>self.max_step: + self.mode=2 + #self.graph_construction=self.discreteComplexComposeGraph(self.coefficients,self.time) #complex now + self.graph_construction=self.numpyComposeConstructionGraph(self.coefficients,t=self.time) self.vectors=self.getVectors([(0,0)]+self.graph_construction) self.graph_display.append(self.graph_construction[-1]) @@ -99,7 +93,7 @@ class Fourier: self.showGraph(self.graph_display,mycolors.BLUE) self.showVectors([(0,0)]+self.graph_construction,self.vectors,mycolors.RED) self.context.text.append("time: "+str(self.time)) - #self.context.print("coefficients:"+str(self.coefficients),(1000,850),size=20,conversion=False,color=mycolors.GREEN) + elif self.mode==2: self.showGraph(self.graph_display,mycolors.BLUE) self.context.showConsole(nmax=10) @@ -143,8 +137,13 @@ class Fourier: self.graph_drawing=self.cleanGraph(self.graph_drawing) #self.graph_drawing=self.takeGraphSamples(self.graph_drawing)[:] print(self.graph_drawing) - self.coefficients=self.discreteComplexDecomposeGraph(self.graph_drawing) - self.graph_construction=self.discreteComplexComposeGraph(self.coefficients,0) + #self.coefficients=self.discreteComplexDecomposeGraph(self.graph_drawing) + self.graph_drawing=self.graph_drawing[:len(self.graph_drawing)-1+len(self.graph_drawing)%2] + self.coefficients=self.numpyFourierTransform(self.graph_drawing) + self.graph_drawing=self.numpyInverseFourierTransform(self.coefficients) + #print(len(self.coefficients)) + #self.graph_construction=self.discreteComplexComposeGraph(self.coefficients,0) + self.graph_construction=self.graph_drawing self.time=0 self.step=0 print(self.coefficients) @@ -211,6 +210,20 @@ class Fourier: p=self.context.point() self.graph_drawing.append(p) + def threeBlueOneBrownFormula(self,graph): + c=[] + for n in range(len(graph)): + cn=sum([graph[n]]) + + def numpyFourierTransform(self,graph): + """Return the fourier coefficients by doing a fourier transform for a given graph with the fft.""" + z=[complex(*graph[i]) for i in range(len(graph))] + return np.fft.fft(z) + + def numpyFourierTransform2D(self,graph,**kwargs): + """Return the fourier coefficients by doing a fourier transform for a given graph with the fft2.""" + return np.fft.fft2(graph,**kwargs) + def decompose(self,graph): """Decompose the points into 2 signals the coefficients corresponding to the drawing.""" x=[graph[i][0] for i in range(len(graph))] @@ -280,6 +293,14 @@ class Fourier: c.append(d) return c + def numpyInverseFourierTransform(self,coefficients,**kwargs): + """Return the fourier coefficients by doing a fourier transform for a given graph with the fft.""" + return [(z.real,z.imag) for z in np.fft.ifft(coefficients,**kwargs)] + + def numpyInverseFourierTransform2D(self,coefficients,**kwargs): + """Create a graph using the coefficients under the form of a list of duos.""" + return np.fft.ifft2(coefficients,**kwargs) + def scipyTranform(self,s): """Find the fourier transform using the scipy module.""" l=len(s) @@ -373,14 +394,68 @@ class Fourier: g.append((d.real,d.imag)) return g + def numpyComposeConstructionGraph2D(self,coefficients,t=0): + """Uses the fourier coefficients of the fourier transform. to make the construciton graph.""" + l=len(coefficients) + xs,ys=0,0 + wo=2*math.pi + #wo=1 + #wo=1/100 + graph=[] + for i,c in enumerate(coefficients): + n=i + a,b=c + print("a:",a.real,a.imag) + #x=a.real*math.cos(n*wo*t)+a.imag*math.sin(n*wo*t) + #y=b.real*math.cos(n*wo*t)+b.imag*math.sin(n*wo*t) + x=a.real*math.cos(n*wo*t) + y=a.imag*math.sin(n*wo*t) + xs+=x; ys+=y + graph.append((xs,ys)) + print("x,y:",x,y) + print("xs,ys:",xs,ys) + print(coefficients) + print(graph) + return graph + def numpyComposeConstructionGraph(self,coefficients,t=0): + """Uses the fourier coefficients of the fourier transform. to make the construciton graph.""" + l=len(coefficients) + xs,ys=0,0 + wo=2*math.pi + #wo=1 + #wo=1/10 + graph=[] + #print("coefficients:") + #print(coefficients) + l=len(coefficients) + print(l) + h=l//2 + for i in range(l): + n=int(((i+1)//2)*(-1)**(i+1)) + print("n:",n) + z=coefficients[n+h]*cmath.exp(n*wo*t*1j) + print(z) + #print("z:",z.real,z.imag) + x=z.real + y=z.imag + xs+=x; ys+=y + graph.append((xs,ys)) + #print("x,y:",x,y) + #print("xs,ys:",xs,ys) + print(graph) + return graph if __name__=="__main__": from mycontext import Context context=Context(name="Application of the Fourier Transform.",fullscreen=False) fourier=Fourier(context) - fourier.coefficients=[[0,1,2,0.5],[0,1,5,2],[0,-2,1,6],[0,-4,3,1]] - #fourier.coefficients=[(3+5j),(2+1j),(0-0.5j),(1+3.5j),(2-1j)] - #fourier.mode=1 + #fourier.coefficients=[[0,1,2,0.5],[0,1,5,2],[0,-2,1,6],[0,-4,3,1]] + fourier.coefficients=np.array([(3+5j),(2+1j),(0-0.5j),(1+3.5j),dtype=complex]) + #cx=[0+50j,0+18j,12+0j,-14+0j] + #cy=[-60-30j,0+8j,0-10j] + + #fourier.coefficients=np.array(list(zip(cx,cy))) + fourier.mode=1 fourier() diff --git a/Game Structure/geometry/version4/myimmutablebody.py b/Game Structure/geometry/version4/myimmutablebody.py new file mode 100644 index 0000000..9ef6e0e --- /dev/null +++ b/Game Structure/geometry/version4/myimmutablebody.py @@ -0,0 +1,14 @@ +class ImmutableBody(Body): + """Define a body than cannot be moved by any other body.""" + def __init__(self,*args,**kwargs): + super().__init(*args,**kwargs) + + +class Ground(ImmutableBody): + """Define a ground that is an immutable body.""" + def __init__(self,): + """Create a ground using its line.""" + self.mass=float('inf') + +#(m1+m2)v=m1v1+m2v2 +#m*v**2=m1*v1**2+m2*v2**2 diff --git a/Game Structure/geometry/version4/myinterpolation.py b/Game Structure/geometry/version4/myinterpolation.py new file mode 100644 index 0000000..f13e411 --- /dev/null +++ b/Game Structure/geometry/version4/myinterpolation.py @@ -0,0 +1,127 @@ +""" +The goal of this program is to make an interpolation of the points of any +curve in order to make it a parametric function. + + +There are 2 main types of interpolations: +- Polynomial Interpolation: +- Bezier Interpolation: +""" + +from marclib.polynomial import Polynomial +import numpy as np + +#Deprectated function +def directInterpolation(points,t): + x=[pt[0] for pt in points] + y=[pt[1] for pt in points] + plx=Polynomial.createFromInterpolation(range(len(x)),x) + ply=Polynomial.createFromInterpolation(range(len(y)),y) + l=len(pts) + mst=100 + + + +class PolynomialInterpolation: + """Make an interpolation using the lagrangian polynomial interpolator + over list of n-dimensional points.""" + + def __init__(self,points,create=True): + """Create the interpolation using a list of n-dimensional points.""" + self.points=points + if create: self.create() + + def create(self): + """Create the components useful for the interpolation which are the + split components and the lagrangian polynomials.""" + self.createComponents() + self.createPolynomials() + + def createComponents(self): + """Split its components of each point in separate lists.""" + self.components=[[pt[i] for pt in self.points] for i in range(len(self.points[0]))] + + def createPolynomials(self): + """Create its polynomials using its components.""" + lpts=len(self.points) + self.polynomials=[Polynomial.createFromInterpolation(range(lpts),c) for c in self.components] + + def __call__(self,t): + """Evaluate the parametric interpolation for the input 't' between 0 and 1.""" + lcps=len(self.components) + return tuple([self.polynomials[i](t) for i in range(lcps)]) + + def sample(self,n): + """Make a sample of the interpolation for n points.""" + lpts=len(self.points) + return [self(lpts*t) for t in np.linspace(0,1,n)] + +class BezierInterpolation: + """Make an interpolation using the bezier interpolation over a list of + n-dimensional points.""" + + def __init__(self,points,create=True): + """Create the interpolation using a list of n-dimensional points.""" + self.points=points + if create: self.create() + + def create(self): + pass + + def __call__(self): + pass + + def sample(self,n): + """Make a sample of the interpolation for n points.""" + lpts=len(self.points) + return [self(lpts*t) for t in np.linspace(0,1,n)] + + +if __name__=="__main__": + #To show the points + from mycontext import Context + import mycolors + #To create the points + import random + + context=Context() + + #Parameters + h=1; w=1 + xmin=-w + xmax=w + ymin=-h + ymax=h + n=5 + + #Creation of the points + pts=[(random.uniform(xmin,xmax),random.uniform(ymin,ymax)) for i in range(n)] + + """ Tests: + Calculations for n points in dimension 2: + + x=[pt[0] for pt in pts] + y=[pt[1] for pt in pts] + plx=Polynomial.createFromInterpolation(range(len(x)),x) + ply=Polynomial.createFromInterpolation(range(len(y)),y) + print(plx) + print(ply) + l=len(pts) + mst=100 + npts=[(plx(l*st/mst),ply(l*st/mst)) for st in range(mst)] + grapher=Grapher(context,functions=[plx,ply]) + """ + + #Final version + interpolation=Interpolation(pts) + npts=interpolation.sample(200) #Sample 200 points by interpolation + + #Main loop of the context + while context.open: + context.check() + context.control() + context.clear() + context.show() + context.draw.lines(context.screen,mycolors.GREEN,pts,connected=False) + context.draw.lines(context.screen,mycolors.YELLOW,npts,connected=False) + context.flip() diff --git a/Game Structure/geometry/version4/mymandelbrot.py b/Game Structure/geometry/version4/mymandelbrot.py new file mode 100644 index 0000000..ffb891a --- /dev/null +++ b/Game Structure/geometry/version4/mymandelbrot.py @@ -0,0 +1,123 @@ +from mycontext import Context +from PIL import Image, ImageDraw +import numpy as np +import mycolors +from mymanager import SimpleManager + + + +def mandelbrot(z,maxiter): + c=z + for n in range(maxiter): + if abs(z) > 2: + return n + z=z**2+c + return maxiter + +def getMatrix(width=800,height=800,corners=[-2,-1,1,1],maxiter=80): + xmin,ymin,xmax,ymax=corners + xzoom=(xmax-xmin)/width + yzoom=(ymax-ymin)/height + matrix=np.zeros([width,height]) + for x in range(0,width): + for y in range(0,height): + matrix[x][y]=mandelbrot(complex(xmin+x*xzoom,ymin+y*yzoom),maxiter) + return matrix + +def showMatrixWithPIL(matrix,width=None,height=None,maxiter=80,save=True): + if (width is None) or (height is None): + width,height=[len(matrix),len(matrix[0])] + im = Image.new('RGB',(width,height),(0, 0, 0)) + draw = ImageDraw.Draw(im) + for x in range(width): + for y in range(height): + color=int(matrix[x][y] * 255 / maxiter) + draw.point([x, y], (color, color, color)) + if save: im.save('output.png', 'PNG') + im.show() + + + +class Mandelbrot(SimpleManager): + def compute(self,z): + c=z + for n in range(self.maxiter): + if abs(z) > 2: + return n + z=z**2+c + return self.maxiter + + def __init__(self,context,size,maxiter=80): + """Create a set of mandelbrot using the size, the corners and the maxiter (maxiteration).""" + self.context=context + self.maxiter=maxiter + self.size=size + + def buildMatrix(self): + """Return the numpy matrix of the set.""" + xmin,ymin,xmax,ymax=self.corners + xzoom=(xmax-xmin)/self.width + yzoom=(ymax-ymin)/self.height + self.matrix=np.zeros(self.size) + for x in range(self.width): + for y in range(self.height): + self.matrix[x][y]=self.compute(complex(xmin+x*xzoom,ymin+y*yzoom)) + + def showWithPIL(self,save=True): + """Show the set with PIL using the matrix.""" + im = Image.new('RGB',(self.width,self.height),(0, 0, 0)) + draw = ImageDraw.Draw(im) + for x in range(self.width): + for y in range(self.height): + color=int(self.matrix[x][y] * 255 / self.maxiter) + draw.point([x, y], (color, color, color)) + if save: im.save('output.png', 'PNG') + im.show() + + def showSet(self): + """Show the mandelbrot set on the context.""" + for x in range(self.width): + for y in range(self.height): + c=int(self.matrix[x][y] * 255 / self.maxiter) + self.context.draw.rect(self.context.screen,(c,c,c),[x,y,1,1]) + + + def update(self): + """Update the mandelbrot set depending on the corners.""" + self.buildMatrix() + + def show(self): + """Show the mandelbrot set.""" + self.context.refresh() + self.context.control() + self.showSet() + self.context.flip() + + def getCorners(self): + return self.context.corners + def getWidth(self): + return self.size[0] + def getHeight(self): + return self.size[1] + + #Properties + corners=property(getCorners) + height=property(getHeight) + width=property(getWidth) + + + +if __name__=="__main__": + context_size=[800,600] + mandelbrot_size=[200,150] + corners=[-2,-1,1,1] + context=Context.createFromSizeAndCorners(context_size,corners,name="Mandelbrot") #width,height=context.size + + print(context.corners) + print(context.position) + print([0,0] in context) + #width=800;height=600;maxiter=20 + #matrix=getMatrix(width,height,maxiter=maxiter) + #showMatrixWithPIL(matrix,width,height,maxiter=maxiter) + m=Mandelbrot(context,mandelbrot_size) + m() diff --git a/Game Structure/geometry/version4/mymathgraph.py b/Game Structure/geometry/version4/mymathgraph.py new file mode 100644 index 0000000..ab00818 --- /dev/null +++ b/Game Structure/geometry/version4/mymathgraph.py @@ -0,0 +1,14 @@ +import numpy as np + +class VisualGraph: + """Wikipedia: In mathematics, and more specifically in graph theory, a graph + is a structure amounting to a set of objects in which some pairs of the + objects are in some sense "related". The objects correspond to mathematical + abstractions called vertices (also called nodes or points) and each of the + related pairs of vertices is called an edge (also called link or line).[1] + Typically, a graph is depicted in diagrammatic form as a set of dots or + circles for the vertices, joined by lines or curves for the edges. Graphs + are one of the objects of study in discrete mathematics.""" + def __init__(self,matrix): + """Create a graph using its + self.matrix=matrix diff --git a/Game Structure/geometry/version4/mynewgrapher.py b/Game Structure/geometry/version4/mynewgrapher.py index 21fa7d6..0dd7cf2 100644 --- a/Game Structure/geometry/version4/mynewgrapher.py +++ b/Game Structure/geometry/version4/mynewgrapher.py @@ -67,14 +67,16 @@ class Grapher(SimpleManager): def sampleFunctions(self,functions): """Sample all the functions one by one.""" - return [self.sampleFunction(function) for function in functions] + ymin=self.context.ymin + ymax=self.context.ymax + return [self.sampleFunction(function,ymin,ymax) for function in functions] - def sampleFunction(self,function): + def sampleFunction(self,function,ymin,ymax): """Return n points of the graph.""" xmin,xmax=self.getInterval() n=self.sample_number xl=np.linspace(xmin,xmax,n) - return [(x,function(x)) for x in xl] + return [(x,function(x)) for x in xl if yminiVqjnp6%kcuU}RwMba4!+nDb_Deui}9 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 literal 0 HcmV?d00001 diff --git a/Game Structure/geometry/version4/test3.py b/Game Structure/geometry/version4/test3.py index 681945f..86e9cd3 100644 --- a/Game Structure/geometry/version4/test3.py +++ b/Game Structure/geometry/version4/test3.py @@ -1 +1,25 @@ -from +from mycontext import Context +import mycolors +import cmath +import random + +cx=[0+50j,0+18j,12+0j,-14+0j] +cy=[-60-30j,0+8j,0-10j,0] + +a=list(zip(cx,cy)) +print(a) +context=Context() + +n=100 + +l=[complex(random.uniform(-1,1),random.uniform(-1,1)) for i in range(n)] + +while context.open: + context.check() + context.control() + context.clear() + context.show() + for e in l: + z=cmath.exp(complex(e)) + context.draw.complex(context.screen,mycolors.WHITE,z,0.1) + context.flip() diff --git a/Mandelbrot/colors.py b/Mandelbrot/colors.py new file mode 100644 index 0000000..9de2927 --- /dev/null +++ b/Mandelbrot/colors.py @@ -0,0 +1,74 @@ +from __future__ import division +import random as rd +from math import exp,log +import math + +BLUE = ( 0, 0,255) +RED = (255, 0, 0) +GREEN = ( 0,255, 0) +YELLOW = (255,255, 0) +BLACK = ( 0, 0, 0) +WHITE = (255,255,255) +GREY = (100,100,100) +PURPLE = (100, 0,100) +ORANGE = (255,165, 0) +BROWN = (160, 82, 45) +HALFGREY = ( 50, 50, 50) +DARKGREY = ( 20, 20, 20) +DARKRED = ( 10, 10, 10) +DARKGREEN = ( 0,100, 0) +DARKBLUE = ( 0, 0,100) +LIGHTRED = (255,200,200) +LIGHTGREEN = (200,255,200) +LIGHTBLUE = (200,200,255) +LIGHTBROWN = (229,219,222) +LIGHTGREY = (200,200,200) +BEIGE = (199,175,138) + +sigmoid = s = lambda x:1/(1+math.exp(-x)) +reverse_sigmoid = lambda x:log(x/(1-x)) +#r=reverse_sigmoid() + +bijection = lambda x,e,s:(x-e[0])/(e[1]-e[0])*(s[1]-s[0])+s[0] + + +random = lambda : tuple([rd.randint(0,255) for i in range(3)]) +reverse = lambda color: tuple([255-c for c in color]) +darken = lambda color,n=0: tuple([int(c*sigmoid(n/10)) for c in color]) +lighten = lambda color,n=0: tuple([int(255-(255-c)*sigmoid(n/10)) for c in color]) +mix = lambda cl1,cl2: tuple([(c1+c2)//2 for (c1,c2) in zip(cl1,cl2)]) +substract = lambda cl1,cl2: tuple([max(min(2*c1-c2,255),0) for (c1,c2) in zip(cl1,cl2)]) +increase = lambda color,n=2: tuple([int(255*exp(n*log(c/255))) for c in color]) + + +def setFromWavelength(wavelength): + """Return a color using wavelength.""" + gamma,max_intensity=0.80,255 + def adjust(color, factor): + if color==0: return 0 + else: return round(max_intensity*pow(color*factor,gamma)) + if 380<=wavelength<=440: r,g,b=-(wavelength-440)/(440-380),0,1 + elif 440<=wavelength<=490: r,g,b=0,(wavelength-440)/(490-440),1 + elif 490<=wavelength<=510: r,g,b=0,1,-(wavelength-510)/(510-490) + elif 510<=wavelength<=580: r,g,b=(wavelength-510)/(580-510),1,0 + elif 580<=wavelength<=645: r,g,b=1,-(wavelength-645)/(645-580),0 + elif 645<=wavelength<=780: r,g,b=1,0,0 + else: r,g,b=0,0,0 + if 380<=wavelength<=420: factor=0.3+0.7*(wavelength-380)/(420-380) + elif 420<=wavelength<=701: factor=1 + elif 701<=wavelength<=780: factor=0.3+0.7*(780-wavelength)/(780-700) + else: factor=0 + r,g,b=adjust(r,factor),adjust(g,factor),adjust(b,factor) + return (r,g,b) + +#if __name__=="__main__": + #print(darken(RED,10)) + #print(mix(YELLOW,RED)) + #print(reverse(LIGHTBROWN)) + #print(substract(LIGHTBROWN,ORANGE)) + #print(increase(LIGHTBROWN)) + + #for i in range(380,780,10): + # print(setFromWavelength(i)) + + #print("mycolors imported") diff --git a/Mandelbrot/mandelbrot pygame.py b/Mandelbrot/mandelbrot pygame.py new file mode 100644 index 0000000..06e6097 --- /dev/null +++ b/Mandelbrot/mandelbrot pygame.py @@ -0,0 +1,52 @@ +# Programme : mandelbrot.py +# Langage : Python 3.6 - Pygame 1.9 +# Auteur : Mathieu +# Description : Calcule et affiche la fractale de Mandelbrot en noir et blanc +import pygame +# Constantes +MAX_ITERATION = 50 # nombre d'itérations maximales avant de considérer que la suite converge +XMIN, XMAX, YMIN, YMAX = -2, +0.5, -1.25, +1.25 # bornes du repère +LARGEUR, HAUTEUR = 500, 500 # taille de la fenêtre en pixels +# Initialisation et création d'une fenêtre aux dimensions spécifiéés munie d'un titre +pygame.init() +screen = pygame.display.set_mode((LARGEUR,HAUTEUR)) +pygame.display.set_caption("Fractale de Mandelbrot") +# Création de l'ensemble de Mandelbrot +# Principe : on balaye l'écran pixel par pixel en convertissant le pixel en un point du plan de notre repère +# Si la suite converge, le point appartient à l'ensemble de Mandelbrot et on colore le pixel en noir +# Sinon la suite diverge, le point n'appartient pas à l'ensemble et on colore le pixel en blanc +for y in range(HAUTEUR): + for x in range(LARGEUR): + # Les deux lignes suivantes permettent d'associer à chaque pixel de l'écran de coordonnées (x;y) + # un point C du plan de coordonnées (cx;cy) dans le repère défini par XMIN:XMAX et YMIN:YMAX + cx = (x * (XMAX - XMIN) / LARGEUR + XMIN) + cy = (y * (YMIN - YMAX) / HAUTEUR + YMAX) + xn = 0 + yn = 0 + n = 0 + while (xn * xn + yn * yn) < 4 and n < MAX_ITERATION: # on teste que le carré de la distance est inférieur à 4 -> permet d'économiser un calcul de racine carrée coûteux en terme de performances + # Calcul des coordonnes de Mn + tmp_x = xn + tmp_y = yn + xn = tmp_x * tmp_x - tmp_y * tmp_y + cx + yn = 2 * tmp_x * tmp_y + cy + n = n + 1 + if n == MAX_ITERATION: + screen.set_at((x, y), (0, 0, 0)) # On colore le pixel en noir -> code RGB : (0,0,0) + else: + screen.set_at((x, y), (255, 255, 255)) # On colore le pixel en blanc -> code RGB : (255,255,255) +pygame.display.flip() # Mise à jour et rafraîchissement de la fenêtre graphique pour affichage +# Boucle infinie permettant d'afficher à l'écran la fenêtre graphique +# Sans ça, la fenêtre apparaît et disparaît aussitôt +loop = True +while loop: + for event in pygame.event.get(): + if event.type == pygame.QUIT: # Pour quitter l'application en fermant la fenêtre + loop = False + elif event.type == pygame.MOUSEBUTTONDOWN: + p = pygame.mouse.get_pos() + px = (p[0] * (XMAX - XMIN) / LARGEUR + XMIN) + py = (p[1] * (YMIN - YMAX) / HAUTEUR + YMAX) + print("({};{})".format(px,py)) + +pygame.quit() diff --git a/Mandelbrot/mandelbrot tools.py b/Mandelbrot/mandelbrot tools.py new file mode 100644 index 0000000..517816e --- /dev/null +++ b/Mandelbrot/mandelbrot tools.py @@ -0,0 +1,87 @@ +#from mycontext import Context +from PIL import Image, ImageDraw +import numpy as np +import colors + +def getDiscreteColoredArray(array,color1=colors.WHITE,color2=colors.BLACK): + f=lambda n:color1 if n==1 else color2 + return f(array) + + +def uselessNameSpace(): + for y in range(HAUTEUR): + for x in range(LARGEUR): + # Les deux lignes suivantes permettent d'associer à chaque pixel de l'écran de coordonnées (x;y) + # un point C du plan de coordonnées (cx;cy) dans le repère défini par XMIN:XMAX et YMIN:YMAX + cx = (x * (XMAX - XMIN) / LARGEUR + XMIN) + cy = (y * (YMIN - YMAX) / HAUTEUR + YMAX) + xn = 0 + yn = 0 + n = 0 + while (xn * xn + yn * yn) < 4 and n < MAX_ITERATION: # on teste que le carré de la distance est inférieur à 4 -> permet d'économiser un calcul de racine carrée coûteux en terme de performances + # Calcul des coordonnes de Mn + tmp_x = xn + tmp_y = yn + xn = tmp_x * tmp_x - tmp_y * tmp_y + cx + yn = 2 * tmp_x * tmp_y + cy + + + +def showMatrixWithScreen(screen,array,width=None,height=None): + if not width or not height: + width,height=[len(array),len(array[0])] + for x in range(width): + for y in range(height): + screen.set_at((x, y),array[x][y]) + +def showMatrixWithContext(context,array,width=None,height=None): + if not width or not height: + width,height=[len(array),len(array[0])] + for x in range(width): + for y in range(height): + context.draw.square() + + + + + + + + +def mandelbrot(z,maxiter): + c=z + for n in range(maxiter): + if abs(z) > 2: + return n + z=z**2+c + return maxiter + +def getMatrix(width=800,height=800,corners=[-2,-1,1,1],maxiter=80): + xmin,ymin,xmax,ymax=corners + xzoom=(xmax-xmin)/width + yzoom=(ymax-ymin)/height + matrix=np.zeros([width,height]) + for x in range(0,width): + for y in range(0,height): + matrix[x][y]=mandelbrot(complex(xmin+x*xzoom,ymin+y*yzoom),maxiter) + return matrix + +def showMatrixWithPIL(matrix,width=None,height=None,maxiter=80,save=True): + if (width is None) or (height is None): + width,height=[len(matrix),len(matrix[0])] + im = Image.new('RGB',(width,height),(0, 0, 0)) + draw = ImageDraw.Draw(im) + for x in range(width): + for y in range(height): + color=int(matrix[x][y] * 255 / maxiter) + draw.point([x, y], (color, color, color)) + if save: im.save('output.png', 'PNG') + im.show() + + +if __name__=="__main__": + #context=Context() + #width,height=context.size + width=800;height=600;maxiter=20 + matrix=getMatrix(width,height,maxiter=maxiter) + showMatrixWithPIL(matrix,width,height,maxiter=maxiter) diff --git a/Mandelbrot/mandelbrot1.py b/Mandelbrot/mandelbrot1.py new file mode 100644 index 0000000..a8e6c81 --- /dev/null +++ b/Mandelbrot/mandelbrot1.py @@ -0,0 +1,46 @@ +import numpy as np +from matplotlib import pyplot as plt +from matplotlib import colors +#%matplotlib inline + +settings=[-2.0,0.5,-1.25,1.25,3,3,80] + +def mandelbrot(z,maxiter): + c = z + for n in range(maxiter): + if abs(z) > 2: + return n + z = z*z + c + return maxiter + +def mandelbrot_set(xmin,xmax,ymin,ymax,width,height,maxiter): + r1 = np.linspace(xmin, xmax, width) + r2 = np.linspace(ymin, ymax, height) + return (r1,r2,[mandelbrot(complex(r, i),maxiter) for r in r1 for i in r2]) + + +def mandelbrot_image(xmin,xmax,ymin,ymax,width=3,height=3,maxiter=80,cmap='hot'): + print("Initiating the mandelbrot image.") + dpi = 72 #Zoom of the image + img_width = dpi * width #Find the width of the image using the zoom and the width of the set + img_height = dpi * height #Same operation for the height + x,y,z = mandelbrot_set(xmin,xmax,ymin,ymax,img_width,img_height,maxiter) #Find the set + print("The set is done.") + print(type(z[0])) + + fig, ax = plt.subplots(figsize=(width, height),dpi=72) #get plt components + ticks = np.arange(0,img_width,3*dpi) #find the steps + x_ticks = xmin + (xmax-xmin)*ticks/img_width #split the x axis + plt.xticks(ticks, x_ticks) + y_ticks = ymin + (ymax-ymin)*ticks/img_width #split the y axis + plt.yticks(ticks, y_ticks) + print("Image settings are done.") + + norm = colors.PowerNorm(0.3) #Cool colors i guess + ax.imshow(z,cmap=cmap,origin='lower',norm=norm) #create a dope heat map + print("Image is done.") + + +mandelbrot_image(-2.0,0.5,-1.25,1.25,maxiter=80,cmap='gnuplot2') +#img=Image.fromarray(ms,'RGB') +#img.show() diff --git a/Mandelbrot/mandelbrot2 bis.py b/Mandelbrot/mandelbrot2 bis.py new file mode 100644 index 0000000..c0ba024 --- /dev/null +++ b/Mandelbrot/mandelbrot2 bis.py @@ -0,0 +1,31 @@ +from PIL import Image, ImageDraw +from mandelbrot import mandelbrot, MAX_ITER + +# Image size (pixels) +WIDTH = 600 +HEIGHT = 400 + +# Plot window +RE_START = -2 +RE_END = 1 +IM_START = -1 +IM_END = 1 + +palette = [] + +im = Image.new('RGB', (WIDTH, HEIGHT), (0, 0, 0)) +draw = ImageDraw.Draw(im) + +for x in range(0, WIDTH): + for y in range(0, HEIGHT): + # Convert pixel coordinate to complex number + c = complex(RE_START + (x / WIDTH) * (RE_END - RE_START), + IM_START + (y / HEIGHT) * (IM_END - IM_START)) + # Compute the number of iterations + m = mandelbrot(c) + # The color depends on the number of iterations + color = 255 - int(m * 255 / MAX_ITER) + # Plot the point + draw.point([x, y], (color, color, color)) + +im.save('output.png', 'PNG') diff --git a/Mandelbrot/mandelbrot2.py b/Mandelbrot/mandelbrot2.py new file mode 100644 index 0000000..39be6ee --- /dev/null +++ b/Mandelbrot/mandelbrot2.py @@ -0,0 +1,58 @@ +from PIL import Image, ImageDraw +import numpy as np +#from mandelbrot import mandelbrot, MAX_ITER + +MAX_ITER = 80 + +def mandelbrot(c,maxiter): + z = 0 + n = 0 + while abs(z) <= 2 and n < maxiter: + z = z**2 + c + n += 1 + return n + +# Image size (pixels) + + +def showPicture(corners=[-2,-1,1,1],width=600,height=400,maxiter=80): + xmin,ymin,xmax,ymax=corners + + im = Image.new('RGB', (width,height), (0, 0, 0)) + draw = ImageDraw.Draw(im) + xlength=xmax-xmin + ylenght=ymax-ymin + + #from pixel to complex + xzoom=xlength/width + yzoom=ylenght/height + + for x in range(width): + for y in range(height): + # Convert pixel coordinate to complex number + c = complex(xmin+x*xzoom,ymin+y*yzoom) + # Compute the number of iterations + m = mandelbrot(c,maxiter) + # The color depends on the number of iterations + color = int(m * 255 / maxiter) + # Plot the point + draw.point([x, y], (color, color, color)) + + im.save('output.png', 'PNG') + im.show() + +def getMatrix(corners=[-2,-1,1,1],width=600,height=400,maxiter=80): + xmin,ymin,xmax,ymax=corners + xzoom=(xmax-xmin)/width + yzoom=ymax-ymin/height + matrix=np.zeros([width,height]) + for x in range(0,width): + for y in range(0,height): + c = complex(xmin+x*xzoom,ymin+y*yzoom) + m = mandelbrot(c,maxiter) + matrix[x,y]=m + return matrix + +#matrix=getMatrix() +#print(len(matrix)) +showPicture() diff --git a/Mandelbrot/output.png b/Mandelbrot/output.png new file mode 100644 index 0000000000000000000000000000000000000000..d60f0ac4b1ee7e5feeb339db816c5a2a4d4eac1d GIT binary patch literal 50302 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 z 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 literal 0 HcmV?d00001