flutter_particle_attraction_simulation
flutter_particle_attraction_simulation copied to clipboard
Particle Attraction Simulation
Particle Attraction Simulation
A Flutter application that simulates the movement and interaction of particles based on mouse position. Particles are attracted to the mouse or to a calculated point if the mouse is not moving. This project demonstrates the use of Flutter's CustomPainter
for custom drawing and GestureDetector
for handling user interactions.
Getting Started
Prerequisites
- Flutter installed on your machine. If you don't have Flutter installed, follow the instructions on the official Flutter website.
Installation
-
Clone the repository:
git clone https://github.com/hamed-rezaee/flutter_particle_attraction_simulation.git
-
Install the dependencies:
flutter pub get
-
Run the app:
flutter run
Project Structure
-
main
: Entry point of the application. Sets up the main widget and handles particle logic. -
Particle
: A class representing an individual particle. -
ParticleAnimation
: A stateful widget that manages the particle system and user interactions. -
ParticlePainter
: A custom painter that renders the particles on the canvas.
Customization
You can customize the behavior and appearance of the particles by modifying the following constants in ParticleAnimation:
-
rows
: Number of rows of particles. -
cols
: Number of columns of particles. -
numParticles
: Total number of particles (rows * cols). -
thickness
: Attraction strength. Increase for stronger attraction. -
spacing
: Distance between particles. -
margin
: Margin around the particle grid. -
color
: Color intensity of the particles. -
drag
: Damping factor for particle movement. -
ease
: Ease factor for particle movement.
Acknowledgements
This project was inspired by https://codepen.io/soulwire/pen/DdGRYG by Justin Windle.
License
This project is licensed under the MIT License.
Contributing
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.