Facebook
From joao, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 181
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Windows.Forms;
  5.  
  6. namespace ParticleSystem
  7. {
  8.     public partial class Form1 : Form
  9.     {
  10.         private List<Particle> particles = new List<Particle>();
  11.         private Random random = new Random();
  12.         private Color backgroundColor = Color.FromArgb(15, 15, 15);
  13.  
  14.         public Form1()
  15.         {
  16.             InitializeComponent();
  17.             LittleBootyBitchs();
  18.             timer1.Interval = 1;
  19.             timer1.Start();
  20.             DoubleBuffered = true;
  21.         }
  22.  
  23.         private void LittleBootyBitchs()
  24.         {
  25.             int numParticles = 50;
  26.             for (int i = 0; i < numParticles; i++)
  27.             {
  28.                 double angle = random.NextDouble() * 2 * Math.PI;
  29.                 double speed = random.Next(1, 5);
  30.                 particles.Add(new Particle()
  31.                 {
  32.                      Positi PointF(random.Next(0, ClientSize.Width), random.Next(0, ClientSize.Height)),
  33.                     Velocity = new PointF((float)(Math.Cos(angle) * speed), (float)(Math.Sin(angle) * speed)),
  34.                     Radius = random.Next(2, 5),
  35.                     Color = Color.DarkBlue
  36.                 });
  37.             }
  38.         }
  39.         private void BigBootyBitchs()
  40.         {
  41.             foreach (var particle in particles)
  42.             {
  43.                  particle.Positi PointF(particle.Position.X + particle.Velocity.X, particle.Position.Y + particle.Velocity.Y);
  44.                 if (particle.Position.X <  ) particle.Positi PointF(ClientSize.Width, particle.Position.Y);
  45.                  if (particle.Position.X > ClientSize.Width) particle.Positi PointF(0, particle.Position.Y);
  46.                 if (particle.Position.Y <  ) particle.Positi PointF(particle.Position.X, ClientSize.Height);
  47.                  if (particle.Position.Y > ClientSize.Height) particle.Positi PointF(particle.Position.X, 0);
  48.             }
  49.         }
  50.         protected override void OnPaint(PaintEventArgs e)
  51.         {
  52.             e.Graphics.Clear(backgroundColor);
  53.             foreach (var particle in particles)
  54.             {
  55.                 e.Graphics.FillEllipse(new SolidBrush(particle.Color),
  56.                     particle.Position.X - particle.Radius,
  57.                     particle.Position.Y - particle.Radius,
  58.                     particle.Radius * 2, particle.Radius * 2);
  59.                 foreach (var otherParticle in particles)
  60.                 {
  61.                     if (particle != otherParticle)
  62.                     {
  63.                         float dx = particle.Position.X - otherParticle.Position.X;
  64.                         float dy = particle.Position.Y - otherParticle.Position.Y;
  65.                         float distance = (float)Math.Sqrt(dx * dx + dy * dy);
  66.  
  67.                         if (distance < 50)
  68.                         {
  69.                             int alpha = (int)((1.0f - (distance / 50.0f)) * 255.0f);
  70.                             e.Graphics.DrawLine(new Pen(Color.FromArgb(alpha, Color.DarkBlue), 1),
  71.                                 particle.Position, otherParticle.Position);
  72.                         }
  73.                     }
  74.                 }
  75.             }
  76.         }
  77.         private void Form1_Load(object sender, EventArgs e)
  78.         {
  79.             this.BackColor = Color.FromArgb(16, 16, 16);
  80.              this.FormBorder
  81.         }
  82.         private void timer1_Tick(object sender, EventArgs e)
  83.         {
  84.             BigBootyBitchs();
  85.             Invalidate();
  86.         }
  87.     }
  88.  
  89.     public class Particle
  90.     {
  91.         public PointF Position { get; set; }
  92.         public PointF Velocity { get; set; }
  93.         public int Radius { get; set; }
  94.         public Color Color { get; set; }
  95.     }
  96. }
  97.