/// <summary> /// Располагает фигуры в соответствии с найденным решением /// </summary> /// <param name="data">Список фигур</param> /// <param name="res">Найденное решение</param> /// <param name="width">Ширина холста</param> /// <param name="height">Высота холста</param> /// <param name="color">Цвета фигур</param> /// <returns>Изображение расположенных фигур</returns> private static Bitmap GetResultBitmap(List <Figure> data, ResultData res, int width, int height, List <Color> color) { Bitmap b = new Bitmap(width, height); for (int i = 0; i < res.answer.Count; i++) { ResultFigPos figPos = res.answer[i]; Figure figData = data[i]; DeltaRepresentation solutionFigWithoutScaling; if (figPos.angle == 0) { solutionFigWithoutScaling = figData.noScaling; } else { solutionFigWithoutScaling = figData.noScaling.GetTurnedDelta((int)figPos.angle); } PlaceDeltasOnABitmap(b, solutionFigWithoutScaling.deltas, figPos.xCenter, figPos.yCenter, color[i]); } return(b); }
/* * [Лист%номер% * [%имя фигуры% %х% %у% %угол поворота%] * ] */ /// <summary> /// Генерирует текстовую строку для одной фигуры /// </summary> private static string GetOneFigureResult(Figure curFig, ResultFigPos res) { return('[' + curFig.name + ' ' + res.xCenter + ' ' + res.yCenter + ' ' + res.angle + ']'); }