using lab1.Drawnings; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace lab1.CollectionGenericObjects; public class TrackedVehicleSharingService : AbstractCompany { public TrackedVehicleSharingService(int picWidth, int picHeight, ICollectionGenericObjects collection) : base(picWidth, picHeight, collection) { } /// /// Вывод заднего фона /// /// protected override void DrawBackgound(Graphics g) { int width = _pictureWidth / _placeSizeWidth; int height = _pictureHeight / _placeSizeHeight; Pen pen = new(Color.Black, 2); for (int i = 0; i < width; i++) { for (int j = 0; j < height + 1; ++j) { g.DrawLine(pen, i * _placeSizeWidth + 15, j * _placeSizeHeight, i * _placeSizeWidth + 15 + _placeSizeWidth - 55, j * _placeSizeHeight); g.DrawLine(pen, i * _placeSizeWidth + 15, j * _placeSizeHeight, i * _placeSizeWidth + 15, j * _placeSizeHeight - _placeSizeHeight); } } } /// /// Расстановка объектов /// protected override void SetObjectsPosition() { int width = _pictureWidth / _placeSizeWidth; int height = _pictureHeight / _placeSizeHeight; int curWidth = width - 1; int curHeight = 0; for (int i = 0; i < (_collection?.Count ?? 0); i++) { try { _collection?.Get(i)?.SetPictureSize(_pictureWidth, _pictureHeight); _collection?.Get(i)?.SetPosition(_placeSizeWidth * curWidth+28, curHeight * _placeSizeHeight + 28); } catch (Exception) { } if (curWidth > 0) curWidth--; else { curWidth = width - 1; curHeight++; } if (curHeight > height) { return; } } } }