public void TestFillProperty() { Color color = Colors.Azure; EllipseInfo ellipse = new EllipseInfo(); ellipse.Fill = color; Assert.AreEqual(ellipse.Fill, color); }
public void TestStrokeProperty() { Color color = Colors.AntiqueWhite; EllipseInfo ellipse = new EllipseInfo(); ellipse.Stroke = color; Assert.AreEqual(ellipse.Stroke, color); }
public void TestWidthProperty() { double width = 54; EllipseInfo ellipse = new EllipseInfo(); ellipse.Width = width; Assert.AreEqual(ellipse.Width, width); }
public void TestHeightProperty() { double height = 54; EllipseInfo ellipse = new EllipseInfo(); ellipse.Height = height; Assert.AreEqual(ellipse.Height, height); }
public void TestTopLeftProperty() { Point point = new Point(10, 12.5); EllipseInfo ellipse = new EllipseInfo(); ellipse.TopLeft = point; Assert.AreEqual(ellipse.TopLeft, point); }
public void TestNameProperty() { string name = "shape1"; EllipseInfo ellipse = new EllipseInfo(); ellipse.Name = name; Assert.AreEqual(ellipse.Name, name); }
private void RenderFrame(object sender, EventArgs e) { if (ellipses.Count == 0) { // Animation just started. Create the ellipses. int halfCanvasWidth = (int)canvas.ActualWidth / 2; Random rand = new Random(); int ellipseCount = rand.Next(minEllipses, maxEllipses + 1); for (int i = 0; i < ellipseCount; i++) { Ellipse ellipse = new Ellipse(); ellipse.Fill = Brushes.LimeGreen; ellipse.Width = ellipseRadius; ellipse.Height = ellipseRadius; Canvas.SetLeft(ellipse, halfCanvasWidth + rand.Next(-halfCanvasWidth, halfCanvasWidth)); Canvas.SetTop(ellipse, 0); canvas.Children.Add(ellipse); EllipseInfo info = new EllipseInfo(ellipse, speedRatio * rand.Next(minStartSpeed, maxStartSpeed)); ellipses.Add(info); } } else { for (int i = ellipses.Count - 1; i >= 0; i--) { EllipseInfo info = ellipses[i]; double top = Canvas.GetTop(info.Ellipse); Canvas.SetTop(info.Ellipse, top + 1 * info.VelocityY); if (top >= (canvas.ActualHeight - 2 * ellipseRadius - 10)) { // This circle has reached the bottom. // Stop animating it. ellipses.Remove(info); } else { // Increase the velocity. info.VelocityY += accelerationY; } if (ellipses.Count == 0) { // End this animation. // There's no reason to keep calling this method if it has no work to do. StopRendering(); } } } }
public void TestAddEllipse() { EllipseCanvas canvas = new EllipseCanvas(); Point pos = new Point(20, 20); double height = 10; double width = 40; string name = "name"; EllipseInfo ellipse = CreateEllipse(pos, width, height, name); canvas.AddEllipse(ellipse); EllipseInfo addedEllipse = canvas.Ellipses[0]; Assert.AreEqual(ellipse.Name, addedEllipse.Name); Assert.AreEqual(ellipse.Height, addedEllipse.Height); Assert.AreEqual(ellipse.Width, addedEllipse.Width); Assert.AreEqual(ellipse.TopLeft, addedEllipse.TopLeft); Assert.AreEqual(1, canvas.Ellipses.Count); }
public void TestRemoveEllipse() { EllipseCanvas canvas = new EllipseCanvas(); int ellipseCount = 10; for (int i = 0; i < ellipseCount; ++i) { canvas.AddEllipse(CreateEllipse(new Point(100 * i, 50 * i), 20 * i, 30 * i, "item")); } Point pos = new Point(20, 20); double height = 10; double width = 40; string name = "name"; EllipseInfo ellipse = CreateEllipse(pos, width, height, name); canvas.AddEllipse(ellipse); canvas.RemoveEllipse(ellipse); Assert.AreEqual(ellipseCount, canvas.Ellipses.Count); Assert.IsFalse(canvas.Ellipses.Contains(ellipse)); }
private void RenderFrame(object sender, EventArgs e) { if (ellipses.Count == 0) { Random rand = new Random(); double spreadX; double spreadY; for (int i = 0; i < bulletPhysics.GetCountBullets(); i++) { if (rand.Next(1, 11) > 5) { spreadX = clickX - spread * rand.Next(50, 100); } else { spreadX = clickX + spread * rand.Next(50, 100); } if (rand.Next(1, 11) > 5) { spreadY = clickY - spread * rand.Next(50, 100); } else { spreadY = clickY + spread * rand.Next(50, 100); } Ellipse ellipse = new Ellipse(); ellipse.Fill = BrushesSelected(); // сделать ввод из комбобокса ellipse.Width = bulletPhysics.GetSizeBullet(); ellipse.Height = bulletPhysics.GetSizeBullet(); Canvas.SetLeft(ellipse, 125); Canvas.SetTop(ellipse, 125); Map.Children.Add(ellipse); EllipseInfo info = new EllipseInfo(ellipse, bulletPhysics.GetVelocity(), spreadX, spreadY); ellipses.Add(info); } for (int i = 0; i < 1; i++) { Rectangle rectangle = new Rectangle(); rectangle.Fill = Brushes.Black; rectangle.Width = 100; rectangle.Height = 100; Canvas.SetLeft(rectangle, 325); Canvas.SetTop(rectangle, 325); Map.Children.Add(rectangle); RectangleInfo info = new RectangleInfo(rectangle); wall.Add(info); } } else { for (int i = ellipses.Count - 1; i >= 0; i--) { EllipseInfo info = ellipses[i]; double left = Canvas.GetLeft(info.Ellipse); double top = Canvas.GetTop(info.Ellipse); double catet1 = Math.Abs(info.SpreadPathBulletX - left); double catet2 = Math.Abs(info.SpreadPathBulletY - top); double len = Math.Sqrt(catet1 * catet1 + catet2 * catet2); catet1 /= len; catet2 /= len; if (clickX > left) { Canvas.SetLeft(info.Ellipse, left + catet1 * info.VelocityY); } else if (left > clickX) { Canvas.SetLeft(info.Ellipse, left - catet1 * info.VelocityY); } if (clickY > top) { Canvas.SetTop(info.Ellipse, top + catet2 * info.VelocityY); } else if (top > clickY) { Canvas.SetTop(info.Ellipse, top - catet2 * info.VelocityY); } UIElementCollection children1 = Map.Children; var children = children1.OfType <UIElement>().ToList(); foreach (var recc in children) { if (recc is Rectangle) { Rectangle rec = recc as Rectangle; double wallY = Canvas.GetTop(rec); double wallX = Canvas.GetLeft(rec); double bulletY = Canvas.GetTop(info.Ellipse); double bulletX = Canvas.GetLeft(info.Ellipse); if ((wallY + 100 >= bulletY && wallY <= bulletY) && (wallX + 100 >= bulletX && wallX <= bulletX)) { Map.Children.Remove(info.Ellipse); ellipses.Remove(info); break; } else { if (info.SpreadPathBulletY + 16 + spread * 100 >= top && info.SpreadPathBulletY - 16 - spread * 100 <= top && info.SpreadPathBulletX + 16 + spread * 100 >= left && info.SpreadPathBulletX - 16 - spread * 100 <= left) { Map.Children.Remove(info.Ellipse); ellipses.Remove(info); } else if (bulletPhysics.GetBurstBullet() == true && bulletPhysics.GetCountBullets() > 1 && ellipses.Count == i) { info.VelocityY += accelerationY; } } } } if (ellipses.Count == 0) { StopRendering(); clickCanvasOn = true; } } } }
/// <summary> /// Initializes a new instance of the <see cref="EllipseListChangedEventArgs"/> class /// </summary> /// <param name="ellipse">Shape ellipse</param> /// <param name="canvas">Canvas drawing area</param> public EllipseListChangedEventArgs(EllipseInfo ellipse, EllipseCanvas canvas) { this.Ellipse = ellipse; this.Canvas = canvas; }