def evolves(self, q, p, iter, Psetting=[(False,0.0),(False,0.0)] ):
     #self.map.Psetting = Psetting
     self.ms = MapSystem(self.map)
     self.ms.setPeriodic(Psetting)
     point = Point(self.map.dim, self.map.isComplex, [q,p])
     self.ms.setInit(point)
     self.ms.setMaxImag(None)
     self.ms.evolves(iter)
     return self.ms.P.data
 def __init__(self, map):
     map.isComplex = True  
     self.Psetting = map.Psetting
     Space.__init__(self, map.dim, map.isComplex)
     self.map = map
    # self.map.Psetting = [(False,0.0),(False,0.0)] 
     self.mset_data = numpy.array([])
     self.point = Point(map.dim,map.isComplex)
     self.ms = MapSystem(self.map)    
class Mset(Space):
    def __init__(self, map):
        map.isComplex = True  
        self.Psetting = map.Psetting
        Space.__init__(self, map.dim, map.isComplex)
        self.map = map
       # self.map.Psetting = [(False,0.0),(False,0.0)] 
        self.mset_data = numpy.array([])
        self.point = Point(map.dim,map.isComplex)
        self.ms = MapSystem(self.map)    
    def mset(self, p, iter, grid, xmin=0.0, xmax=1.0, ymin=-0.5, ymax=0.5, yShift=True):
        p = numpy.array([p+0.j for i in range(grid)])
        x = numpy.arange(xmin, xmax, (xmax - xmin)/grid)
        y = numpy.arange(ymin, ymax, (ymax - ymin)/grid)
        if yShift == True:
            self.get_sign_inversion(iter, p, x, y, grid)
        else:
            #todo 
            self.get_sign_inversion(iter, p, x, y, grid)

    def get_sign_inversion(self, iter, p, x, y, grid):
        for dy in y:
            iy = numpy.array([dy for i in range(grid) ])
            q = x + 1.j*iy
            data = self.evolves(q, p, iter)    
            index = self.where_sign_inversion(data[1].imag)
            for i in index:
                point = (q[i-1].real + q[i].real) /2.0  + 1.j*dy
                self.mset_data = numpy.append(self.mset_data, point)
            if numpy.abs(dy)<=(y.max()-y.min())/grid:
                real = numpy.arange(x.min(), x.max(), (x.max() - x.min())/grid) + 0.j
                self.mset_data = numpy.append(self.mset_data,real)

    def evolves(self, q, p, iter, Psetting=[(False,0.0),(False,0.0)] ):
        #self.map.Psetting = Psetting
        self.ms = MapSystem(self.map)
        self.ms.setPeriodic(Psetting)
        point = Point(self.map.dim, self.map.isComplex, [q,p])
        self.ms.setInit(point)
        self.ms.setMaxImag(None)
        self.ms.evolves(iter)
        return self.ms.P.data

    def where_sign_inversion(self, x):
        x1 = numpy.insert(x, 0, 0.0)
        x2 = numpy.insert(x,len(x),0.0)
        return numpy.where(x1*x2 < 0)[0]
    def get_mset(self):
        return self.mset_data.real, self.mset_data.imag
    def get_map(self, map, xmin, xmax, ymin, ymax, sample, iter):

        map.Psetting = self.Psetting
        ms = MapSystem(map, True)
        ms.setPeriodic(map.Psetting)
        x = numpy.random.random(sample)
        y = numpy.arange(ymin, ymax, (ymax - ymin)/sample)
        point = Point(map.dim, map.isComplex, [x,y])
        ms.setInit(point)
        ms.evolves(iter)
        data = [[],[]]
        for i in range(1,len(ms.Remain)):
            data[0].append(numpy.array(ms.Trajectory[i]).transpose()[0])
            data[1].append(numpy.array(ms.Trajectory[i]).transpose()[1])
        return data
Beispiel #5
0
resolution = (640, 800)

window = pygame.display.set_mode(resolution)
clock = pygame.time.Clock()

list_of_keys = []

Players = []
Players.append(Player(mymath.Vector2(100, 100), 100, True))

room_size = (640, 640)
roomSurface = pygame.Surface((640, 640))

hudSurface = pygame.Surface((640, 160))

Floor = MapSystem.Floor(roomSurface)

done = False
while not done:
    dtime = clock.tick()

    evtList = pygame.event.get()
    for evt in evtList:
        if evt.type == pygame.QUIT:
            done = True
        elif evt.type == pygame.KEYDOWN:
            list_of_keys.append(evt.key)
        elif evt.type == pygame.KEYUP:
            list_of_keys.remove(evt.key)

    Floor.update(Players, roomSurface)