Определение координат для создания фигур
необходимо создать приложение, располагающее 4 вида разных фигур на определенном полотне. Я решил это сделать создав некоторые переменные для хранения информации о оставшемся свободном пространстве на определенной линии. Через туеву хучу if'ов находится свободное пространство для фигуры. Проблема заключается в том, что у меня не получается присвоить новые точки x и y после создания фигуры. Новая фигура создается там же, где и прошлая, что совершенно не подходит для поставленной задачи. Прошу помочь решить эту проблему, если возможно подробнее описать как это осуществить. С вставкой кода я не разобрался, поэтому прилагаю проект целиком.
Ответы (1 шт):
public void боковаяСторонаToolStripMenuItem_Click(object sender, EventArgs e)
{
if ((xline1 > xbok) && (yline1 > ybok))
{
prefigurax = x + 397;
bok_s.Create(this, x, y, pictureBox1);
MessageBox.Show("Фигура добавлена");
}
else if ((xline1 > xbok) && (yline2 > ybok))
{
xline1 = xline1 - xbok;
yline1 = yline1 - ybok;
x = prefigurax;
y = prefiguray;
prefigurax = prefigurax + xbok;
bok_s.Create(this, x, y, pictureBox1);
MessageBox.Show("Фигура добавлена");
}
else if ((xline1 > xbok) && (yline3 > ybok))
{
x = prefigurax;
y = prefiguray;
prefigurax = prefigurax + xbok;
prefiguray = prefiguray + ybok;
xline1 = xline1 - xbok;
yline2 = yline2 - ybok;
bok_s.Create(this, x, y, pictureBox1);
MessageBox.Show("Фигура добавлена");
}
else if ((xline2 > xbok) && (yline1 > ybok))
{
x = prefigurax;
y = prefiguray;
prefigurax = prefigurax + xbok;
x = xtopoint;
y = y + ybok;
xline1 = xline1 - xbok;
yline3 = yline3 - ybok;
bok_s.Create(this, x, y, pictureBox1);
MessageBox.Show("Фигура добавлена");
}
else if (xline2 > xbok && yline2 > ybok)
{
x = prefigurax;
y = prefiguray;
prefigurax = prefigurax + xbok;
prefiguray = prefiguray + ybok;
xline2 = xline2 - xbok;
yline1 = yline1 - ybok;
bok_s.Create(this, x, y, pictureBox1);
MessageBox.Show("Фигура добавлена");
}
else if (xline2 > xbok && yline3 > ybok)
{
x = prefigurax;
y = prefiguray;
prefigurax = prefigurax + xbok;
prefiguray = prefiguray + ybok;
xline2 = xline2 - xbok;
yline2 = yline2 - ybok;
bok_s.Create(this, x, y, pictureBox1);
}
else MessageBox.Show("Недостаточно места на листе.", "Ошибка!");
}
Получилось вставить только кусок отвечающий за поиск свободного места. Еще для понятности переменные:
bok bok_s = new bok();
Dver dver_s = new Dver();
Stol stol_s = new Stol();
Polki polki_s = new Polki();
int x = 14;
int y = 29;
int xtopoint = 14;
int yline1 = 625; // Ha x 312
int yline2 = 625; // Ha x 624
int yline3 = 625; // Ha x 936
int xline1 = 1250; // на y 208
int xline2 = 1250; // Ha y 416
int xbok = 397;
int ybok = 252;
int prefigurax = 0;
int prefiguray = 0;