У меня есть проект для школы по созданию шахматной доски и фигур с использованием Graphics
, который будет изменяться при изменении размера Form
. Я хотел сделать 2 переменные:
new_width = currentFormWidth/startingFormWidth
и new_height = currentFormHeight/startingFormHeight
... и изменить размер, чтобы умножить эти ширину и высоту с цифрами, шириной и высотой доски, но поскольку я использовал Rectangle
-s, я не могу умножить с помощью float. Любые другие предложения? Вот код и скриншот
grafik = this.CreateGraphics();
float new_width = this.Width / startingWidth;
float new__height = this.Height / startingHeight;
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
if ((j % 2 == 0 && i % 2 == 0) || (j % 2 != 0 && i % 2 != 0))
grafik.FillRectangle(new SolidBrush(Color.NavajoWhite), i * 65, j * 65, 65*new_width, 65*new__height);
else if ((j % 2 == 0 && i % 2 != 0) || (j % 2 != 0 && i % 2 == 0))
grafik.FillRectangle(new SolidBrush(Color.DarkRed), i * 65, j * 65, 65 * new_width, 65 * new__height);
}
}
/*************************BLACK FIGURES************************/
//ROOKS
grafik.DrawImage(Properties.Resources.figure, new Rectangle(0, 0, 65 * new_width, 65 * new__height), new Rectangle(65 * 2, 2, 65 , 65), GraphicsUnit.Pixel);
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * 7, 0, 65 * new_width, 65 * new__height), new Rectangle(65 * 2, 2, 65 , 65), GraphicsUnit.Pixel);
//HORSES
grafik.DrawImage(Properties.Resources.figure, new Rectangle(60, 0, 65 * new_width, 65 * new__height), new Rectangle(65 * 3, 2, 65 , 65), GraphicsUnit.Pixel);
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * 6, 0, 65 * new_width, 65 * new__height), new Rectangle(65 * 3, 2, 65, 65), GraphicsUnit.Pixel);
//BISHOPS
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * 2, 0, 65 * new_width, 65 * new__height), new Rectangle(65 * 4, 2, 65 , 65), GraphicsUnit.Pixel);
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * 5, 0, 65 * new_width, 65 * new__height), new Rectangle(65 * 4, 2, 65, 65), GraphicsUnit.Pixel);
//KING AND QUEEN
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * 4, 0, 65 * new_width, 65 * new__height), new Rectangle(0, 2, 65, 65), GraphicsUnit.Pixel);
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * 3, 0, 65 * new_width, 65 * new__height), new Rectangle(65, 2, 65, 65), GraphicsUnit.Pixel);
//PAWNS
for (int i = 0; i < 8; i++)
{
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * i, 65,65*new_width, 65 * new__height), new Rectangle(65 * 5, 2, 65, 65), GraphicsUnit.Pixel);
}
/*************************WHITE FIGURES************************/
//ROOKS
grafik.DrawImage(Properties.Resources.figure, new Rectangle(0, 65 * 7, 65 * new_width, 65 * new__height), new Rectangle(65 * 2, 65, 65, 65), GraphicsUnit.Pixel);
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * 7, 65 * 7, 65 * new_width, 65 * new__height), new Rectangle(65 * 2, 65, 65, 65), GraphicsUnit.Pixel);
//HORSES
grafik.DrawImage(Properties.Resources.figure, new Rectangle(60, 65 * 7, 65 * new_width, 65 * new__height), new Rectangle(65 * 3, 65, 65, 65), GraphicsUnit.Pixel);
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * 6, 65 * 7, 65 * new_width, 65 * new__height), new Rectangle(65 * 3, 65, 65, 65), GraphicsUnit.Pixel);
//BISHOPS
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * 2, 65 * 7, 65 * new_width, 65 * new__height), new Rectangle(65 * 4, 65, 65, 65), GraphicsUnit.Pixel);
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * 5, 65 * 7, 65 * new_width, 65 * new__height), new Rectangle(65 * 4, 65, 65, 65), GraphicsUnit.Pixel);
//KING AND QUEEN
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * 4, 65 * 7, 65 * new_width, 65 * new__height), new Rectangle(0, 65, 65, 65), GraphicsUnit.Pixel);
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * 3, 65 * 7, 65 * new_width, 65 * new__height), new Rectangle(65, 65, 65, 65), GraphicsUnit.Pixel);
//PAWNS
for (int i = 0; i < 8; i++)
{
grafik.DrawImage(Properties.Resources.figure, new Rectangle(65 * i, 65 * 6, 65 * new_width, 65 * new__height), new Rectangle(65 * 5, 65, 65, 65), GraphicsUnit.Pixel);
}
}