puntos.append(cor) #print(cor, 'coordenadas de los puntos') #print(len(cor), type(cor), cor[0][0], cor[1][1], cor[2][0]) #print(len(puntos), type(puntos), puntos) #el siguiente codigo prueba la reconstruccion a partir de los puntos del circumcirculo, los cuales estan distribuidos en un triangulo isoceles #el siguiente codigo crea los objetos chevibot a partir de las coordenadas de los triangulos CB = [] i = 1 for z1 in puntos: p1 = z1[0] p2 = z1[1] p3 = z1[2] obj = str(i) chevi = fig.Chevibot(p1, p2, p3, pantalla, 'funcionando', obj) CB.append(chevi) i = i + 1 #bloque para designar a los objetos que parten detenidos ''' #al invocar al siguiente bloque se detienen los bots definidos por el usuario CB[5].actualizarestado() CB[15].actualizarestado() CB[3].actualizarestado() ''' ''' #al invocar al siguiente bloque se detienen bots aleatorios, segun parametros definidos por el usuario ns=1 #numero de bots detenidos al inicio de la simulacion for j in range(0,ns): b=int(random.uniform(0, len(CB)))
my_clock = pygame.time.Clock() pantalla.fill(NEGRO) mensaje0='los parametros iniciales son: x = {}, y = {} y s = {} st={}'.format(str(a), str(b), str(c), str(d)) mensaje1='los parametros despues de la calibarcion son: xc = {}, yc = {} y sc = {}, sct={}, contador={}'.format(str(x), str(y), str(s), str(t), str(contador)) pygame.draw.circle(pantalla, (255,255,255), (int(x),int(y)), 5, 0) a=getdata() #funcion que recoje los datos del optitrack print(a) b=a[1] #obtiene los datos de cuerpo rigido c=b[b'all'] print(c) d=(-1*s*c[0][0]+x,-1*s*c[0][2]+y),(-1*s*c[1][0]+x,-1*s*c[1][2]+y),(-1*s*c[2][0]+x,-1*s*c[2][2]+y) e=(-1*s*c[3][0]+x,-1*s*c[3][2]+y),(-1*s*c[4][0]+x,-1*s*c[4][2]+y),(-1*s*c[5][0]+x,-1*s*c[5][2]+y) t1=fig.Chevibot(d[0], d[1], d[2], pantalla,'funcionando', 't1') t2=fig.Chevibot(e[0], e[1], e[2], pantalla, 'detenido', 't2') ev = pygame.event.poll() # Look for any event if ev.type == pygame.QUIT: # Window close button clicked? print(mensaje0) print(mensaje1) break if ev.type == pygame.KEYDOWN: if ev.key == pygame.K_ESCAPE: print(mensaje0) print(mensaje1) break if ev.key == pygame.K_r: contador+=1