Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
nedsi
2 / 2 / 2
Регистрация: 18.09.2013
Сообщений: 65
1

Проверить пересечение прямоугольников

10.11.2013, 01:00. Просмотров 709. Ответов 2
Метки нет (Все метки)

как проверить пересекаются ли прямоугольники? Для ясности скинул весь свой класс. Прямоугольники задаются только 2-мя вершинами, рисую через dc.Rect(), поэтому проверят параллельны ли они к горизонтали не нужно. Для ясности скинул весь свой класс Rect. Благодарю.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Point 
{
private:
    int itX,itY;
public:
    inline void SetX(int x)         { itX = x; }
    inline void SetY(int y)         { itY = y; }
    inline int getX() const         {return itX;}
    inline int getY() const         {return itY;}
};
class Rect:public Point
{
public:
    Point ItsUpperLeft;
    Point ItsLowerRight;
public:
    Rect();
    Rect(int top, int left, int bottom, int right);
    ~Rect() { }
    inline int ItsUpperLeftGetX ()  const { return ItsUpperLeft.getX();     }
    inline int ItsUpperLeftGetY ()  const { return ItsUpperLeft.getY();     }
    inline int ItsLowerRightGetX()          const { return ItsLowerRight.getX();    }
    inline int ItsLowerRightGetY()          const { return ItsLowerRight.getY();    }
 
    inline void SetItsUpperLeftX(int topX)   {  ItsUpperLeft.SetX(topX);    }
    inline void SetItsUpperLeftY(int topY)   {  ItsUpperLeft.SetY(topY);    }
    inline void SetItsLowerRightX(int botX)  {  ItsLowerRight.SetX(botX);   }
    inline void SetItsLowerRightY(int botY)  {  ItsLowerRight.SetY(botY);   }
 
    bool Check(Rect &Obj1, Rect &Obj2);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2013, 01:00
Ответы с готовыми решениями:

Пересечение прямоугольников
В прямоугольной системе координат (оси расположены слева направо и сверху вниз)...

Пересечение двух прямоугольников
Собственно, как можно реализовать пересечение двух таких вот прямоугольников,...

Пересечение прямоугольников на плоскости
привет! ребят помогите, пожалуйста.. все по порядку: задача: Реализовать...

Найти пересечение двух прямоугольников
Подскажите как можно быстрее написать программу, которая будет искать точки...

Проверить пересечение окружности и прямой
Заданы окружность радиуса R с центром в начале координат и прямая, проходящая...

2
EVP
502 / 265 / 59
Регистрация: 14.12.2010
Сообщений: 531
10.11.2013, 01:35 2
Посмотри на реализацию Ogre::AxisAlignedBox::intersects(..).
В твоём случае не будет z-координаты.
0
Kuzia domovenok
2331 / 2075 / 485
Регистрация: 25.03.2012
Сообщений: 7,419
Записей в блоге: 1
10.11.2013, 01:40 3
Я бы посоветовал а) поискать алгоритм проверки прямоугольников в интернете. Это все-таки очень актуальная практическая задача.
Б) самому нарисовать все варианты пересечения прямоугольников и составить условие для каждого (один внутри другого, пересекаются одним углом, и.т.д)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2013, 01:40

Проверить отрезки прямых на пересечение
Мне нужно сделать програму которая будет проверять пересекаются отрезки и...

Проверить множество отрезков на пересечение
Помогите пожалуйста дополнить программу для поиска пересечения более двух...

Даны стороны трех прямоугольников Найти периметры и площади этих прямоугольников
1. S1=SSS(a1, b1); S2=SSS(a2, b2); S3=SSS(a3, b3);...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru