class SFTaxiShader(sf.Drawable): def __init__(self, P): sf.Drawable.__init__(self) self.quad= Quad() self.shader= Shader(P) self.states= sf.RenderStates(shader=self.shader) def draw(self, target,states): self.shader.set_parameter("iResolution", target.size ) self.quad.align(target) target.draw(self.quad,self.states) def corners(self): return self.quad.corners()
class SFTaxiShader(sf.Drawable): def __init__(self, P): sf.Drawable.__init__(self) self.quad = Quad() self.shader = Shader(P) self.states = sf.RenderStates(shader=self.shader) def draw(self, target, states): self.shader.set_parameter("iResolution", target.size) self.quad.align(target) target.draw(self.quad, self.states) def corners(self): return self.quad.corners()
class Background(sf.Drawable): def __init__(self): sf.Drawable.__init__(self) self.quad= Quad() self.shader= sf.Shader.from_file(fragment='portal.frag') self.states= sf.RenderStates(shader=self.shader) def draw(self, target,states=None): self.quad.align(target) target.draw(self.quad,self.states) self.shader.set_parameter("iResolution", target.view.size ) self.shader.set_parameter("view_center", target.view.center ) def corners(self): return self.quad.corners()
def main(): print('Welcome to PyQuad. Please enter the coefficients of your equation.') print(u'f(x)=ax\u00b2+bx+c') a = raw_input('Input a: ') b = raw_input('Input b: ') c = raw_input('Input c: ') q = Quad.Quadratic(a, b, c) while True: choice = raw_input( 'Do you want info(I), graph(G) or evaluation(E) ?\n> ') while True: if choice.lower() == 'i': info(q) break elif choice.lower() == 'g': graph(q) break elif choice.lower() == 'e': evaluation(q) break else: print('Input i, g or e') break choice = raw_input('Quit or Main Menu (Q, M)?\n> ') if choice.lower() == 'q': break
def main(): pygame.init() pygame.display.set_caption("Quad Tree Visualisation - Bit-Sahil04") width, height = RESOLUTION clock = pygame.time.Clock() win.fill(BG_COLOR) quad_tree = Quad.Quad((0, 0, width, height), 1) points = set() lmb = False rmb = False spawn_point_count = 4 while True: win.fill(BG_COLOR) for e in pygame.event.get(): if e.type == pygame.QUIT: exit() if pygame.mouse.get_pressed(3)[0] and not lmb: lmb = True rp = pygame.mouse.get_pos() # generate random velocity of point except 0 for i in range(spawn_point_count): p = Point(3, rp, (random.randint(-1, 2) or 1, random.randint(-1, 2) or 1)) p.quadrant = quad_tree.insert_point(p) points.add(p) else: lmb = False if pygame.mouse.get_pressed(3)[2]: rmb = True for i in points: mx, my = pygame.mouse.get_pos() dx = 0 + ((mx - i.pos[0]) / abs(mx - i.pos[0] or 1)) dy = 0 + ((my - i.pos[1]) / abs(mx - i.pos[0] or 1)) i.dv = (dx, dy) else: rmb = False for num, i in enumerate(points): i.update(quad_tree) pygame.draw.circle(win, POINT_COLOR, i.pos, i.radius) show_text(f"{1000 / clock.tick(60) :.0f}", 100, 20, win, size=15) show_text(f"{(len(points))}", 100, 40, win, size=15) redraw_quads(win, quad_tree) pygame.display.flip()
def updateFunc(pvec, t, dt): acc = lambda x1, x2, m: -G * m * (x1 - x2) / (Vector.magnitude(x1 - x2)**( 3) + Vector.magnitude(x1 - x2) * a**2) pquad = Quad(2 * maxDist(pvec), Vector([0, 0]), pvec) quad = createTree(pquad) quadlist.append(quad) retvec = Vector([pvec[0]] * len(pvec)) for p in pvec: force = Vector([0, 0]) qlist = [] quad.subqlist(qlist) index = 0 while index < len(qlist): acc = lambda x1, x2, m: -G * m * (x1 - x2) / (Vector.magnitude( x1 - x2)**(3) + Vector.magnitude(x1 - x2) * a**2) if len(qlist[index].pList) == 0: index += 1 elif len(qlist[index].pList) == 1: try: force += acc(p.pos, qlist[index].pList[0].pos, qlist[index].mass) except ZeroDivisionError: force += Vector([0, 0]) index += 1 else: if qlist[index].len / Vector.magnitude( p.pos - qlist[index].com) < theta: if p.inQuad(qlist[index]): q = qlist[index] force += acc(p.pos, q.com - p.mass * p.pos / q.mass, q.mass - p.mass) else: force += acc(p.pos, qlist[index].com, qlist[index].mass) index += qlist[index].numQBelow() else: index += 1 retvec[pvec.index(p)] = Particle(p.mass, p.vel + dt * force, force) return retvec
def __init__(self): sf.Drawable.__init__(self) self.quad= Quad() self.shader= sf.Shader.from_file(fragment='portal.frag') self.states= sf.RenderStates(shader=self.shader)
def __init__(self, P): sf.Drawable.__init__(self) self.quad= Quad() self.shader= Shader(P) self.states= sf.RenderStates(shader=self.shader)
# Instruccion actual, se actualiza al declarar una figura a dibujar. instr_actual = "" # Num args, el numero de argumentos en la llamada de funcion num_args = 0 # Asignacion es expresion o input asig_input = False # Tabla Semantica para Resolver el tipo de una operacion tabla_semantica = tb.TablaSemantica() # Pila de operadores. pila_operadores = [] # Pila de operandos. pila_operandos = [] # Pila de Saltos pila_saltos = [] # Estructura para genera quadruplos quads = q.Quad() # Pila de variables dimensionadas para tener casos A[B[C[1]]] var_dim = [] # Cantidad de direcciones para cada tipo dirBase, entero, flotante, tmp, ptr, cte. mapa = gd.GeneradorDireccion(5000, 1000, 1000, 1000, 500, 500) # Tabla de constantes tabla_constantes = {} # DEFINICION DE LAS REGLAS DE LA GRAMATICA def p_programa(p): '''programa : MODULE CTE_STR creaDirFunc PUNTCOM ajustes var_func tipo_main MAIN actualiza_id crea_func bloque_func''' # Funcion para rellenar el goto del modulo main. def p_tipo_main(p):
#!/usr/bin/python ''' Created on Oct 23, 2013 @author: drnorris ''' from Quad import * import sys, os MYNAME=sys.argv[0] MYPATH=os.path.realpath(__file__) MYDIR=os.path.dirname(os.path.abspath(__file__)) MYCWD=os.getcwd() #print "sys.argv[0] is: " + MYNAME #print "os.path.realpath(__file__) is: " + MYPATH #print "os.path.dirname(os.path.abspath(__fiel__)) is: " + MYDIR #print "os.getcwd() is: " + MYCWD if __name__ == '__main__': quad = Quad(360, (0,0), 0) quad.insertRandStars(100) quad.update() print "getObjectCount is: " + str(quad.getObjectCount()) quad.printObjects() #for object in quad.getObjectList(): # print object
def __init__(self, P): sf.Drawable.__init__(self) self.quad = Quad() self.shader = Shader(P) self.states = sf.RenderStates(shader=self.shader)