electrosim.rendering.particles#

Functions

draw_force_vectors(screen, particles, ...)

Draw force arrows per particle using precomputed forces if available.

draw_particle_glows(screen, particles, ...)

Draw glows for all non-neutral particles.

draw_particles(screen, particles, ...)

Draw particles as filled circles with optional borders for fixed/selected.

draw_velocity_vectors(screen, particles, ...)

Draw velocity arrows scaled by a constant factor.

draw_particles(screen, particles, pixels_per_meter, selected_index)[source]#

Draw particles as filled circles with optional borders for fixed/selected.

Parameters:
  • screen (pygame.Surface) – Target surface.

  • particles (Iterable[Particle]) – Particles to draw.

  • pixels_per_meter (float) – Scaling from meters to pixels.

  • selected_index (int | None) – Index of selected particle in list order, if any.

Return type:

None

draw_velocity_vectors(screen, particles, pixels_per_meter)[source]#

Draw velocity arrows scaled by a constant factor.

Parameters:
  • screen (pygame.Surface) – Target surface.

  • particles (Iterable[Particle]) – Particles to draw velocity for.

  • pixels_per_meter (float) – Scaling from meters to pixels.

Return type:

None

draw_force_vectors(screen, particles, forces_array, pixels_per_meter)[source]#

Draw force arrows per particle using precomputed forces if available.

Parameters:
  • screen (pygame.Surface) – Target surface.

  • particles (Iterable[Particle]) – Particles to draw forces for.

  • forces_array (numpy.ndarray | None) – Per-particle forces (N) shaped (N,2). If None, nothing is drawn.

  • pixels_per_meter (float) – Scaling from meters to pixels.

Return type:

None

draw_particle_glows(screen, particles, pixels_per_meter)[source]#

Draw glows for all non-neutral particles.

Parameters:
  • screen (pygame.Surface) – Target surface.

  • particles (Iterable[Particle]) – Particles to draw glow for.

  • pixels_per_meter (float) – Scaling from meters to pixels.

Return type:

None