x2XcarleX2x commited on
Commit
9919d56
·
verified ·
1 Parent(s): 6398684

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -10
app.py CHANGED
@@ -32,7 +32,7 @@ def motor_da_simulacao_infinita(angulo_camera: int):
32
  velocidade extrema e um AMBIENTE FIXO.
33
  """
34
  ponto_a = np.array([0., 0., 0.])
35
- vetor_inercia = np.array([10., 10., 10.])
36
  historico_rastro = [ponto_a.tolist()]
37
 
38
  fig = plt.figure(figsize=(8, 8)); ax = fig.add_subplot(111, projection='3d')
@@ -42,7 +42,7 @@ def motor_da_simulacao_infinita(angulo_camera: int):
42
  while True:
43
  ciclo_num += 1
44
 
45
- ponto_b = np.random.rand(3) * 50 - 25 # Universo compacto
46
 
47
  ponto_controle = ponto_a + vetor_inercia
48
  pontos_curva = [ponto_a, ponto_controle, ponto_b]
@@ -50,10 +50,10 @@ def motor_da_simulacao_infinita(angulo_camera: int):
50
 
51
  novos_pontos_rastro = list(zip(x_ciclo, y_ciclo, z_ciclo))
52
  historico_rastro.extend(novos_pontos_rastro)
53
- max_rastro = 150
54
  historico_rastro = historico_rastro[-max_rastro:]
55
 
56
- tamanho_eco = 10
57
  pontos_eco = list(zip(x_ciclo[-tamanho_eco:], y_ciclo[-tamanho_eco:], z_ciclo[-tamanho_eco:]))
58
  vetor_inercia = aprender_com_o_eco_3d(pontos_eco)["velocity_vector"]
59
 
@@ -66,14 +66,14 @@ def motor_da_simulacao_infinita(angulo_camera: int):
66
 
67
  # --- A MUDANÇA PRINCIPAL: AMBIENTE FIXO ---
68
  # A câmera não gira mais com base no frame. Ela usa o ângulo fixo da UI.
69
- ax.view_init(elev=30., azim=angulo_camera)
70
  # ------------------------------------------
71
 
72
- ax.set_xlim(-30, 30); ax.set_ylim(-30, 30); ax.set_zlim(-30, 30)
73
  ax.set_xticklabels([]); ax.set_yticklabels([]); ax.set_zticklabels([])
74
 
75
- ax.scatter(*ponto_a, s=150, c='lime', alpha=0.7)
76
- ax.scatter(*ponto_b, s=150, c='red', marker='X', alpha=0.9)
77
 
78
  indice_global_frame = len(historico_rastro) - len(x_ciclo) + frame
79
  ax.plot(rastro_np[:indice_global_frame+1, 0], rastro_np[:indice_global_frame+1, 1], rastro_np[:indice_global_frame+1, 2], '-', color='#ff4500', linewidth=4, alpha=0.6)
@@ -81,10 +81,10 @@ def motor_da_simulacao_infinita(angulo_camera: int):
81
  ax.plot([x_ciclo[frame]], [y_ciclo[frame]], [z_ciclo[frame]], 'o', color='#ff4500', markersize=8, markeredgecolor='white')
82
 
83
  info_texto = f"Ciclo: {ciclo_num}\nAlvo: {np.round(ponto_b, 1)}"
84
- ax.text2D(0.05, 0.95, info_texto, transform=ax.transAxes, color='white', fontsize=10)
85
 
86
  yield fig
87
- time.sleep(0.01)
88
 
89
  ponto_a = ponto_b
90
 
 
32
  velocidade extrema e um AMBIENTE FIXO.
33
  """
34
  ponto_a = np.array([0., 0., 0.])
35
+ vetor_inercia = np.array([12., 12., 12.])
36
  historico_rastro = [ponto_a.tolist()]
37
 
38
  fig = plt.figure(figsize=(8, 8)); ax = fig.add_subplot(111, projection='3d')
 
42
  while True:
43
  ciclo_num += 1
44
 
45
+ ponto_b = np.random.rand(3) * 60 - 24 # Universo compacto
46
 
47
  ponto_controle = ponto_a + vetor_inercia
48
  pontos_curva = [ponto_a, ponto_controle, ponto_b]
 
50
 
51
  novos_pontos_rastro = list(zip(x_ciclo, y_ciclo, z_ciclo))
52
  historico_rastro.extend(novos_pontos_rastro)
53
+ max_rastro = 4
54
  historico_rastro = historico_rastro[-max_rastro:]
55
 
56
+ tamanho_eco = 8
57
  pontos_eco = list(zip(x_ciclo[-tamanho_eco:], y_ciclo[-tamanho_eco:], z_ciclo[-tamanho_eco:]))
58
  vetor_inercia = aprender_com_o_eco_3d(pontos_eco)["velocity_vector"]
59
 
 
66
 
67
  # --- A MUDANÇA PRINCIPAL: AMBIENTE FIXO ---
68
  # A câmera não gira mais com base no frame. Ela usa o ângulo fixo da UI.
69
+ ax.view_init(elev=32., azim=angulo_camera)
70
  # ------------------------------------------
71
 
72
+ ax.set_xlim(-32, 32); ax.set_ylim(-32, 32); ax.set_zlim(-32, 32)
73
  ax.set_xticklabels([]); ax.set_yticklabels([]); ax.set_zticklabels([])
74
 
75
+ ax.scatter(*ponto_a, s=160, c='lime', alpha=0.8)
76
+ ax.scatter(*ponto_b, s=160, c='red', marker='X', alpha=0.2)
77
 
78
  indice_global_frame = len(historico_rastro) - len(x_ciclo) + frame
79
  ax.plot(rastro_np[:indice_global_frame+1, 0], rastro_np[:indice_global_frame+1, 1], rastro_np[:indice_global_frame+1, 2], '-', color='#ff4500', linewidth=4, alpha=0.6)
 
81
  ax.plot([x_ciclo[frame]], [y_ciclo[frame]], [z_ciclo[frame]], 'o', color='#ff4500', markersize=8, markeredgecolor='white')
82
 
83
  info_texto = f"Ciclo: {ciclo_num}\nAlvo: {np.round(ponto_b, 1)}"
84
+ ax.text2D(0.04, 0.88, info_texto, transform=ax.transAxes, color='white', fontsize=10)
85
 
86
  yield fig
87
+ time.sleep(0.008)
88
 
89
  ponto_a = ponto_b
90