Simule la física para el movimiento de múltiples puntos en 3D

¿Hay alguna forma en que pueda simular el movimiento físico de múltiples puntos en una especie de entorno 3D de habitación cerrada, con eso también quería recopilar información para cada punto como su velocidad, dirección, distancia de otros puntos en cada momento para poder Guárdalo.

En realidad, necesito esta simulación para mi proyecto, creo que el movimiento de puntos se puede hacer en Python, pero mantener tanta información sobre cada punto es una tarea complicada.

Cualquier sugerencia para eso será realmente útil.

Gracias.

Respuestas (2)

Para poder hacer el movimiento del punto, necesita conocer la posición de cada punto (X,Y,Z) y la velocidad (dx/dt, dy/dt, dz/dt), de lo contrario, no puede trazar el cuadro actual con la posición y actualice las posiciones para el siguiente cuadro, así que no se preocupe por eso.

Jupyter con VPython Kernel tiene una demostración de exactamente lo que está buscando en la demostración de Modelado de gas ideal llamada HardSphereGas.ipynb.HardSphereGas.ipynb en ejecución

Abordaría este problema utilizando sorteos aleatorios para obtener la posición inicial y la velocidad de las partículas. La velocidad se puede determinar a partir de la temperatura y luego hacer un sorteo gaussiano para la temperatura. Este es probablemente el enfoque utilizado por la excelente respuesta de Steve Barnes.

¿Qué pasa con el vector de velocidad (da la magnitud y la dirección de la velocidad)? y las distancias de todas las demás partículas?
si asigna aleatoriamente vx, vy y vz, obtiene una distribución aleatoria de velocidades. Solo asegúrese de normalizar ese vector y luego multiplíquelo por la velocidad deseada. Las distancias se pueden calcular después de que se hayan colocado todas las partículas. Luego actualice todo después de eso en un intervalo de 0.1 segundos. (Solo estoy adivinando, pero parece razonable).
¿Cómo puedo hacer un seguimiento de las direcciones en ese caso? es bastante doloroso hacer eso, ¿no hay ningún módulo simple para eso?
No que yo sepa. La otra respuesta puede contener algunas pistas. La dirección no cambiará a menos que una partícula golpee la pared u otra partícula. Suena complicado, pero usar bucles for o do es relativamente sencillo. podría comenzar con 100 partículas para que el código funcione. El cálculo de la distancia tardará un tiempo en calcularse, pero ya está todo listo para usted.