Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.11.06;
Скачать: CL | DM;

Вниз

Как найти точки пересечения 2-х прямоугольников?   Найти похожие ветки 

 
eXAAAXe   (2011-07-09 12:54) [0]

Всем привет.

Есть 2 прямоугольника, если они пересекаются (InterSectRect), то
необходимо найти точки их пересечения. Таких точек будет понятно что тоже 2. При условии не вложенности одного прямоугольника в другой.


 
Palladin ©   (2011-07-09 12:58) [1]

с этой задачей даже школьник справится, который знает уравнение нахождения точки пересечения двух прямых


 
MBo ©   (2011-07-09 13:17) [2]

А какие у этой функции параметры?


 
Andy BitOff ©   (2011-07-09 13:24) [3]

Насколько мне известно, функция вернет рект образованный and"ом пересечения ректов, а отсюда вычеслить где у них были пересечения даже школьником быть не надо, достаточно в детский сад было ходить.


 
Andy BitOff ©   (2011-07-09 13:32) [4]

*вычислить
=)


 
palva ©   (2011-07-09 13:33) [5]

В отличие от программистов школьник знает, что пересечение прямоугольников может быть восьмиугольником.


 
antonn ©   (2011-07-09 15:03) [6]


> В отличие от программистов школьник знает, что пересечение
> прямоугольников может быть восьмиугольником.

InterSectRect


 
oldman ©   (2011-07-09 15:07) [7]


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


да ну?
а соприкасание сторонами мы не учитываем?


 
Inovet ©   (2011-07-09 15:16) [8]

> [5] palva ©   (09.07.11 13:33)
> В отличие от программистов школьник знает, что пересечение
> прямоугольников может быть восьмиугольником.

И одноугольником.


 
Palladin ©   (2011-07-09 19:30) [9]


> Andy BitOff ©   (09.07.11 13:24) [3]

Ну панимаишь... прямоугольники совсем не обязательно должны быть параллены и перпендикулярны осям ) :P


 
Palladin ©   (2011-07-09 19:31) [10]

* параллельны


 
Inovet ©   (2011-07-09 19:58) [11]

> [9] Palladin ©   (09.07.11 19:30)
> прямоугольники совсем не обязательно должны быть параллены и перпендикулярны осям

И плоскостям. Таких ограничений в условии нет.


 
antonn ©   (2011-07-09 20:15) [12]

там есть латинские буковки которые сужают направление ваших фантазий


 
Palladin ©   (2011-07-09 20:18) [13]

если те латинские буковки объединить с текстом вопроса то можно сделать заключение, что автор совсем даун.... вообще напрочь даун... на бумажке не мочь нарисовать два пересекающихся прямоугольника и разобратся какой X и какой Y будут точками, это реально надо быть дауном... а если то что написал Andy имеет место быть, то ниже дауном быть уже нельзя...


 
Andy BitOff ©   (2011-07-09 21:58) [14]

> Palladin ©   (09.07.11 19:30) [9]
> Ну панимаишь...

Дык я-то понимаю ;) Но...
Смотрим условия задачи:

> если они пересекаются (InterSectRect), то

Т.е. (имхо) то, что они пересекаются уже определено или будет определенно в ближайшее время. И именно с помощью данной функции, а она может принять в качестве параметра только структуру Rect, что само по себе исключает возможность не параллельных и не перпендикулярных осям прямоугольников. Что в свою очередь исключает "что пересечение прямоугольников может быть восьмиугольником".
Единственная проблема, эта та, которую озвучил автор, но она тоже решается индивидуами из детского сада.

Вот, собстно, такая имха =)


 
Palladin ©   (2011-07-09 22:00) [15]

это все хорошо.... )) но поводу Детского Сада "Малинка" я уже рассказал в 13 )

и вопще... че так мало 500кб/с..


 
Andy BitOff ©   (2011-07-09 22:08) [16]

> Palladin ©   (09.07.11 22:00) [15]
> это все хорошо.... )) но поводу Детского Сада "Малинка"
> я уже рассказал в 13 )

А-а-а, ну эта... Я дальше 10 не читал =)

> Palladin ©   (09.07.11 22:00) [15]
> и вопще... че так мало 500кб/с..

Фига ты дал... Мало ему... Я, чай, не провайдер и собственного жирного провода не имею =))))


 
antonn ©   (2011-07-09 22:10) [17]


> но поводу Детского Сада "Малинка" я уже рассказал в 13 )

как приятно быть умным, да? :)


 
Inovet ©   (2011-07-09 22:19) [18]

> [15] Palladin ©   (09.07.11 22:00)
> и вопще... че так мало 500кб/с..

Каких ещё 500 кб/с? Где бесплатно раздают?


 
©   (2011-07-10 00:09) [19]


> как приятно быть умным, да? :)

им приятно считать себя умными


 
Palladin ©   (2011-07-10 07:30) [20]

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


 
Palladin ©   (2011-07-10 07:34) [21]


> * ©   (10.07.11 00:09) [19]

))) какая глупокомысленная поправка ) ну, звЁзды они как жирафы, выше всех, им видней


 
Очень злой   (2011-07-10 10:26) [22]


> Таких точек будет
> понятно что тоже 2.


Почему 2? Кому понятно?


 
Andy BitOff ©   (2011-07-10 13:15) [23]

> Очень злой   (10.07.11 10:26) [22]
> Почему 2? Кому понятно?

Еще один? =)


 
Омлет ©   (2011-07-10 15:35) [24]

Точек пересечения двух прямоугольников может быть от 1 до бесконечности.


 
oldman ©   (2011-07-10 21:45) [25]


> Омлет ©   (10.07.11 15:35) [24]


От 0 до бесконечности


 
Очень злой   (2011-07-11 00:06) [26]


> Омлет ©   (10.07.11 15:35) [24]
>
> Точек пересечения двух прямоугольников может быть от 1 до
> бесконечности.


Вроде как, если стороны прямоугольников параллельны координатным осям, то 1,2,4, бесконечность...


 
Amoeba_   (2011-07-11 00:32) [27]


> Вроде как, если стороны прямоугольников параллельны координатным
> осям, то 1,2,4, бесконечность...

... про 0 тоже не стоит забывать ...

Что же касается бесконечности, то это совершенно верно с точки зрения геометрии, но никак не компьютера - тут их количество всегда будет конечным.


 
Marser ©   (2011-07-11 10:35) [28]

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


 
Очень злой   (2011-07-11 10:44) [29]


> Marser ©   (11.07.11 10:35) [28]
> ...
> Точек может быть разное количество, так как в условии ничего
> не сказано о параллельности и равенстве сторон.


Что имеется ввиду под равенством сторон?


 
>|<   (2011-07-11 14:54) [30]


> Есть 2 прямоугольника, если они пересекаются (InterSectRect),
>  то
> необходимо найти точки их пересечения. Таких точек будет
> понятно что тоже 2. При условии не вложенности одного прямоугольника
> в другой.

Если прямоугольники пересекаются, значит 0 не вариант ответа.
Если их стороны не смежны, значит бесконечность тоже не вариант.
При произвольном пересечении может быть 1, 2, 3, 4, 5, 6, 7, 8 точек пересечения. При непарном количестве точек пересечения одна из вершин первого прямоугольника принадлежит стороне другого.
При парном имеет место пересечение их сторон.


 
Омлет ©   (2011-07-11 15:56) [31]

> Amoeba_   (11.07.11 00:32) [27]
> Что же касается бесконечности, то это совершенно верно с точки зрения геометрии, но никак не компьютера - тут их количество всегда будет конечным.


Компьютер с точки зрения eXAAAXe найдет только 2 точки )


 
Inovet ©   (2011-07-11 16:04) [32]

> [30] >|<   (11.07.11 14:54)
> При непарном

А при парнОм в 11-мерном пространстве Калаби-Яу? Не знаю чё эт такое, но, говорят, может целая Вселенная, и не одна, получиться. Рядом в ветке про Большой Взрыв.



Страницы: 1 вся ветка

Текущий архив: 2011.11.06;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.006 c
6-1245670490
FireMan_Alexey
2009-06-22 15:34
2011.11.06
Как получить список открытых портов на локальной машине


15-1310284397
@!!ex
2011-07-10 11:53
2011.11.06
Как делать небольшие смс рассылки?


3-1265443339
lock95
2010-02-06 11:02
2011.11.06
SQL запрос ADODataSet.CommandText


15-1310243395
Юрий
2011-07-10 00:29
2011.11.06
С днем рождения ! 10 июля 2011 воскресенье


1-1271942672
Delpherrr
2010-04-22 17:24
2011.11.06
Как изменить TextHeight формы в RunTime?