|
|
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
Палестинец2Aklin . Если решать ту задачу которую ты решаешь(а не автор). то можно вот так: максимальная окружность содержащаяся в многоугольнике обязана 1) лежать на 3 вершинах с внутренним углом > 90 OR 2) касаться 1 стороны и содержать 2 вершины с внутренним углом > 90 OR 3) касаться 2 сторон и содержать 1 вершину с внутренним углом > 90 OR 4) касаться 3 сторон итого перебор всех этих случаев по всем вершинам и сторонам многоугольника - O(N^3) операций. но c оч большим простором для оптимизаций и отсеивания заведомо неподходящих случаев.. Как определить - точка (внутри/или снаружи) многоугольника? (без этого вроде не решить задачу) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 17:40 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
Как определить - точка (внутри/или снаружи) многоугольника? Произвольный луч (например вдоль X) пущенный из точки пересекает стороны нечётное кол-во раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 18:20 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
softwarer aleks2Не обязан. Обязан. Вписанная окружность обязана касаться каждой из сторон многоугольника , для невыпуклого многоугольника это условие невыполнимо. Это кто сказал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 19:38 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
aleks2 softwarer aleks2Не обязан. Обязан. Вписанная окружность обязана касаться каждой из сторон многоугольника , для невыпуклого многоугольника это условие невыполнимо. Это кто сказал? определение вписанной окружности но в данном случае надо только разместить окружность наибольшего радиуса внутри многоугольника ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 20:42 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
Aklinя сразу скажу, что вам нужен будет ну очень неплохой компьютер. т.к. съедать алгоритм будет много премного. далее. возьмем расстояние А = максимально удаленные две точки многоуголника. Для каждой прямой знаем (xa, ya )-(xb, yb) далее. для каждой точки многоулгольника (зная обе линии, коими эта вершина образована, позаботится заранее) берем нашу R = A/2 и D = A. Центр - на биссектриссе. расстояние от вершины до центра можно ввести программно (формулу вывести и ввести). Смотрим для каждой прямой, не пересекает ли прямая окружность. это решается. я думая стоит решать в общем виде, а не перебирать точки. (например задать программное уравнение, или условие, пока не решал как именно ) (кстати, по-моему самый толстый момент). Если пересекает хоть одну, то R = R/2. Если нет, то D = D/2, R = R + D. до определенно малого D. Теперь прикидываем. [кол-во вершин]*[log( точности D )] В принципе не так уж и сложно. а вот программить замудохаца. аффтопитезь да, по поводу програмирования - замудохаца. Смысл мне ясен.Как теперь реализовать это? Не подскажете алгоритм, если можно по-подробней... я не знаю как запрограмировать вышеуказанное. Может есть какой-то вариант по-проще... ПЛЗ!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2006, 22:25 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
aleks2 softwarer Обязан. Вписанная окружность обязана касаться каждой из сторон многоугольника , для невыпуклого многоугольника это условие невыполнимо. Это кто сказал? http://gimn177.ekburg.ru/view.php?ID=30&slink=ref&main=2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2006, 23:35 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
S.G. aleks2 softwarer Обязан. Вписанная окружность обязана касаться каждой из сторон многоугольника , для невыпуклого многоугольника это условие невыполнимо. Это кто сказал? http://gimn177.ekburg.ru/view.php?ID=30&slink=ref&main=2 Гимназии нынче уже не те... исходная постановка>> задача: в простой многоугольник вписать круг наибольшего радиуса.. Не требует касания всех сторон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 06:42 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
это уже не вписанная окружность, а впихнутая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 12:22 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
можно алгоритм пожалуйсто... плз!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 13:51 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял автора Aklin, он утверждает что центр искомой окружности будет лежать на биссектрисе угла при одной из вершин многоугольника. Если моё понимание того что предложено правильно, то предлагаю проделать следующее: 1.Берем квадрат. 2.Вписываем в него окружность. 3.Отрезаем у квадрата вершины так, чтобы линии отреза не пeресекали и не касались вписанной окружности. 4.Проверяем гипотезу о том, что центр окружности лежит на бессиктрисе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 19:58 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
mikhail_nЕсли я правильно понял автора Aklin, он утверждает что центр искомой окружности будет лежать на биссектрисе угла при одной из вершин многоугольника. Если моё понимание того что предложено правильно, то предлагаю проделать следующее: 1.Берем квадрат. 2.Вписываем в него окружность. 3.Отрезаем у квадрата вершины так, чтобы линии отреза не пeресекали и не касались вписанной окружности. 4.Проверяем гипотезу о том, что центр окружности лежит на бессиктрисе. причем здесь квадрат?? мне круг надо в простой многоугольник вписать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 10:10 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
А с какой точностью необходимо дать ответ задачи? Мне кажется что без методов оптимизации здесь не обойтись, но тогда возникает угроза попасть в локальный минимум, нужно будет придумать условие где начать поиск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 11:30 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
Что-то в ICQ-у к тебе не могу достучаться, Neeka. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 11:43 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
2 Neeka Ну видите ли, Aklin предложил некий метод решения Вашей проблемы основанный (если я правильно его понял) на предположении о том, что центр искомой окружности будет лежать на биссектрисе угла при одной из вершин многоугольника. Вы сказали: Смысл мне ясен. Очевидно, что данное утверждение не верно в случае невыпуклого многоугольника. Мой простой пример с квадратом демонстрирует что данное утверждение неверно и в случае выпуклого многоугольника, т.е. оно не верно вообще. Вот и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 19:11 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
mikhail_n 3.Отрезаем у квадрата вершины так, чтобы линии отреза не пeресекали и не касались вписанной окружности. 4.Проверяем гипотезу о том, что центр окружности лежит на бессиктрисе. Вы что не договорили про отрезание вершин. Я повернул квадрат на 45 градусов и новым квадратом отрезал 4 вершины. Центр продолжает лежать на биссектрисах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 19:21 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
сорри, новые линии будут касаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 19:28 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
повернуть квадрат на 45 градусов и увеличить сторону след. квадрата, так чтобы она оставалась меньше диагонали предыдущего квадрата. Взять пересечение квадратов. В полученный восьмиугольник нельзя вписать больший круг, а на биссектрисах центр окружности не лежит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 19:34 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
Вообщем, думаю, чисто алгоритм поднять дня за два реально, я так посидел, посмотрел на эту задачу в течении часа - вообщем, по-моему, предётся лазить по всем сторонам и искать окружность макс. радиуса, касающуяся рассматриваемой в данный момент стороны и невыходящую за пределы многоугольника. В случае выпуклого многоугольника особых проблем не вижу, для невыпуклого у меня ещё есть ряд неясных моментов чисто с точки зрения численной реализации (ну там кусочно-линейная граница на противоположной стороне в общем случае будет разрывной - не физически конечно, но с точки зрения алгоритма). Думаю, реально построить алгоритм трудоёмкостью O(N*lnN), ну в худшем случае О(N^2). Однако это всё слова, слова, слова. Реально по соотношению (личный безкорыстный творческий интерес)/(трудоёмкость) с моей скромной точки зрения эта задача за пределами тех на которые стоит безвозместно тратить время и силы. Хотя, конечно, можно какую-нибудь наукообразную эвристику слепить по-быстрому, эта да, но это не так интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 21:03 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
тема намбер два: радиус = максимально удаленные две точки/4 дельта = максимально удаленные две точки/2 первоначально надо найти центр * * например ввести сетку и найти максиамальный удаление точки от краев (хотя бы по 8 углам, лучше больше) смотрим, пересекает ли хто-нибудь (им отрезков)** данную окружность. далее если пересекает, то если перескает сверху, то пробуем пройти на дельта (для каждого направления рукурсия отдельно) вниз, влево, вверх. и вправо. если все же пересекает,то уменьшаем радиус на дельта. если не пересекает, то увеличиваем. дельта = дельта/2. если точность дельта достингута, екзит. ** - сложнуй случай - хорда приложение - реально сложный случай аффтопитезь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 21:29 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
аффтопитезь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 21:29 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
конечно же Aklin радиус = максимально удаленные две точки/2 дельта = максимально удаленные две точки/4 как вывод: максиальный радиус - почти две максимально удаленный точки. вот только центр надо бы найти верно. аффтопитезь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 21:31 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
по поводу пересекает ли отрезок окружность: товарищи, так это математика: аффтопитезь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 21:35 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
mikhail_nВообщем, думаю, чисто алгоритм поднять дня за два реально, я так посидел, посмотрел на эту задачу в течении часа - вообщем, по-моему, предётся лазить по всем сторонам и искать окружность макс. радиуса, касающуяся рассматриваемой в данный момент стороны и невыходящую за пределы многоугольника. Ещё раз намекну что эт тоже самое что рассматривать все тройки из вершин и сторон и пытатся вписать в них окружность. проверяя каждую окружность на нахождение внутри многоугольника. алгоритм без лишних оптимизаций - элементарнейший. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2006, 08:57 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
Палестинец mikhail_nВообщем, думаю, чисто алгоритм поднять дня за два реально, я так посидел, посмотрел на эту задачу в течении часа - вообщем, по-моему, предётся лазить по всем сторонам и искать окружность макс. радиуса, касающуяся рассматриваемой в данный момент стороны и невыходящую за пределы многоугольника. Ещё раз намекну что эт тоже самое что рассматривать все тройки из вершин и сторон и пытатся вписать в них окружность. проверяя каждую окружность на нахождение внутри многоугольника. алгоритм без лишних оптимизаций - элементарнейший. это действительно при условии, что конеецчная окружность касается именно 3х сторон. но выше было опровергнуто, ибо окружность может лежать на трех вершинах, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2006, 12:44 |
|
||
|
помогите решить задачу
|
|||
|---|---|---|---|
|
#18+
Aklinэто действительно при условии, что конеецчная окружность касается именно 3х сторон. но выше было опровергнуто, ибо окружность может лежать на трех вершинах, например. рассматривать все тройки из вершин и сторон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2006, 12:50 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=34206057&tid=1345684]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
162ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 446ms |

| 0 / 0 |
