Esempio n. 1
0
        protected override void OnPaint(PaintEventArgs e)
        {
            var graphics = e.Graphics;
            var spiral   = new Spiral(center);
            var prev     = spiral.GetNextSpiralPoint();

            for (var i = 0; i < 1000; i++)
            {
                var item = spiral.GetNextSpiralPoint();
                graphics.DrawLine(Pens.Orange, prev, item);
                prev = item;
            }
        }
Esempio n. 2
0
        private Rectangle FindNextRectanglePosition(Size rectangleSize)
        {
            var nextSpiralPoint = spiral.GetNextSpiralPoint();
            var nextRectangle   = new Rectangle(GetRectangleCenterLocation(rectangleSize, nextSpiralPoint), rectangleSize);

            while (!IsInValidPosition(nextRectangle))
            {
                nextSpiralPoint = spiral.GetNextSpiralPoint();
                nextRectangle   = new Rectangle(GetRectangleCenterLocation(rectangleSize, nextSpiralPoint), rectangleSize);
                if (!cloudBorders.Contains(nextSpiralPoint))
                {
                    throw new ArgumentException("Can't place rectangle because cloud is too small");
                }
            }

            return(nextRectangle);
        }