private void picDisplay_MouseClick(object sender, MouseEventArgs e) { List <IImpactPoint> temp = new List <IImpactPoint>(); switch (e.Button) { case MouseButtons.Left: cp = new CounterPoint { X = emitter.MousePositionX, Y = emitter.MousePositionY }; emitter.impactPoints.Add(cp); break; case MouseButtons.Right: foreach (var ep in emitter.impactPoints) { if (ep.GetType().Name == "CounterPoint") { double distance = Math.Sqrt(Math.Pow(emitter.MousePositionX - ep.X, 2) + Math.Pow(emitter.MousePositionX - ep.X, 2)); if (distance < ep.Power / 2) { temp.Add(ep); } } } break; } foreach (var t in temp) { emitter.impactPoints.Remove(t); } }
public Form1() { InitializeComponent(); picDisplay.Image = new Bitmap(picDisplay.Width, picDisplay.Height); this.MouseWheel += new MouseEventHandler(this_MouseWheel); emitter = new TopEmitter { Width = picDisplay.Width, GravitationY = 0.25f, Speedmin = 10, SpeedMax = 50, ParticlesCount = 100 }; cp = new CounterPoint { X = picDisplay.Width / 2, Y = picDisplay.Height / 2 }; emitter.impactPoints.Add(cp); ColorOne = new PaintPoint // Расположение первого круга { X = picDisplay.Width / 2 - 420, Y = picDisplay.Height / 2, FillColor = Color.Red, FellColor = Color.Red }; emitter.impactPoints.Add(ColorOne); ColorTwo = new PaintPoint // Расположение второго круга { X = picDisplay.Width / 2 - 315, Y = picDisplay.Height / 2, FillColor = Color.Green, FellColor = Color.Green }; emitter.impactPoints.Add(ColorTwo); ColorThree = new PaintPoint // Расположение третьего круга { X = picDisplay.Width / 2 - 210, Y = picDisplay.Height / 2, FillColor = Color.Blue, FellColor = Color.Blue }; emitter.impactPoints.Add(ColorThree); ColorFour = new PaintPoint // Расположение четвёртого круга { X = picDisplay.Width / 2 - 105, Y = picDisplay.Height / 2, FillColor = Color.Magenta, FellColor = Color.Magenta }; emitter.impactPoints.Add(ColorFour); ColorFive = new PaintPoint // Расположение пятого круга { X = picDisplay.Width / 2, Y = picDisplay.Height / 2, FillColor = Color.Yellow, FellColor = Color.Yellow }; emitter.impactPoints.Add(ColorFive); ColorSix = new PaintPoint // Расположение шестого круга { X = picDisplay.Width / 2 + 105, Y = picDisplay.Height / 2, FillColor = Color.Purple, FellColor = Color.Purple }; emitter.impactPoints.Add(ColorSix); ColorSeven = new PaintPoint // Расположение седьмого круга { X = picDisplay.Width / 2 + 210, Y = picDisplay.Height / 2, FillColor = Color.Orange, FellColor = Color.Orange }; emitter.impactPoints.Add(ColorSeven); ColorEight = new PaintPoint // Расположение восьмого круга { X = picDisplay.Width / 2 + 315, Y = picDisplay.Height / 2, FillColor = Color.Pink, FellColor = Color.Pink }; emitter.impactPoints.Add(ColorEight); ColorNine = new PaintPoint // Расположение девятого круга { X = picDisplay.Width / 2 + 420, Y = picDisplay.Height / 2, FillColor = Color.Brown, FellColor = Color.Brown }; emitter.impactPoints.Add(ColorNine); }