Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.11.06;
Скачать: [xml.tar.bz2];

Вниз

Как найти точки пересечения 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.02 c
15-1310156995
Юрий
2011-07-09 00:29
2011.11.06
С днем рождения ! 9 июля 2011 суббота


15-1310298590
Boxssss
2011-07-10 15:49
2011.11.06
Посоветуйте хостинг


11-1210765847
Vinum
2008-05-14 15:50
2011.11.06
StringGrid+DateTimePicker


2-1310730839
Anthony
2011-07-15 15:53
2011.11.06
Изменить цвет выделения в TRichEdit


15-1310069123
George
2011-07-08 00:05
2011.11.06
Немножечко похвастаюсь





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский