У меня есть проект с мебелью(в виде прямоугольников) я их делаю (потом считаю колизию при создании) но вот когда я поворачиваю их у меня они наслаиваются так как не получается посмотреть что зайнято ли там.
Как правильно раситать, чтобы во время поворота мебели(прямоугольника) она смотрела на колизиию( тоесть есть ли там что-то.
Код колизии
private bool ColliderChecker(Rectangle obj1)
{
bool isEmpty = true;
foreach (var x in PokojCanvas.Children.OfType<Rectangle>())
{
if ((string)x.Tag == "Mebel")
{
x.Stroke = Brushes.Black;
Rect currentHitBox = new Rect(mebels.PosX, mebels.PosY, obj1.Width, obj1.Height);
Rect mebelHitBox = new Rect(Canvas.GetLeft(x), Canvas.GetTop(x), x.Width, x.Height);
if (currentHitBox.IntersectsWith(mebelHitBox))
{
isEmpty = false;
}
else
{
isEmpty = true;
}
}
}
return isEmpty;
}
Когда я использую это в качестве проверки для уже существующей мебели то кнопка вообще не дает повернуть даже если пусто.
Код кнопки поворота
private void Rotate_Button_Click(object sender, RoutedEventArgs e)
{
for (int i = 0; i < mebels.IsObjCreate; i++)
{
if (PokojListManager.SelectedIndex == nabytek[i].ID)
{
double wdth = rectangle[i].Width;
double hght = rectangle[i].Height;
rectangle[i].Width = hght;
rectangle[i].Height = wdth;
break;
}
}
}
Тут как оно выглядит: