Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отыскание пути в многоугольнике 
:(
    Опции темы
$tatic
Дата 29.6.2005, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 28.1.2005

Репутация: нет
Всего: 22



Имеется многоугольник с "дырками" и 2 точки внутри него.
Как построить ломаную наименьшей длины, соединяющую эти точки?
Желательно бы в исходнике или в мат. форме.
PM MAIL   Вверх
SoWa
Дата 7.7.2005, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Методом извлечения оптимального пути в графе. А на чем тебе сырец надо, на Паскале или на Си?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
$tatic
Дата 8.7.2005, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 28.1.2005

Репутация: нет
Всего: 22



Лучше тогда на Паскале... Только причем здесь граф?
PM MAIL   Вверх
vadims
Дата 8.7.2005, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 8.6.2005

Репутация: нет
Всего: 17



$tatic А что значит с "дырками" ???


--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
SoWa
Дата 8.7.2005, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Так, тогда расскажи как ты решаешь задачи с путями в фигурах?

Сначала пробуем дотянуться напрямую. Если не вышло, тянемся к ближайшей "Дырке". От неё к точке пробуем, итд...


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Harkonnen
Дата 12.7.2005, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 22.4.2005

Репутация: нет
Всего: нет



Ищется путь в графе дейкстрой. Вершины - эти две точки плюс вершины многоугольника (включая вершины дыр). Дуги - все отрезки, соединяющие пары вершин, которые (отрезки) при этои остаются внутри многоугольника. Длина дуги - её эвклидова длина (или какая там мера используется).

Метод определение того, что отрезок остаётся внутри многоугольника.

Термины:
1) Отрезок - отрезок, который мы проверяем (дуга графа)
2) Сегмент - отрезок, соединяющий две подряд идущие вершины многоугольника/дырки.
3) Внутренность отрезка/сегмента - все точки кроме концов. Т.е. (a;b) в интервальной нотаци ([a;b] - весь отрезок целиком в этой нотации).
4) ДА - отрезок лежит целиком внутри прямоугольника.
5) НЕТ - отрезок не лежит целиком вутри прямоугольника.

Критерий:
1) Если отрезок пересекает своей внутренностью внутренность какого-то сегмента, то НЕТ.

2) Если внутренность отрезка содержит концевую вершину какого-то сегмента, то надо идти от этой вершины вдоль многоугольника/дырки в обе стороны, пока каждый из обходов не наткется на вершину, не принадлежащую внутренности отрезка (вершина всё ещё может оставаться на прямой отрезка, но при этом не принадлежать его внутренности). Если эти вершины лежат строго по разные стороны прямой отрезка (т.е. произведение ориентированных расстояний строго отрицательно), то НЕТ.

Если по всем сегментам ни разу не сработало НЕТ, то ДА.

(В п.2. обход может зациклиться, если отрезок параллелен плоской дырке/многоугольнику (это допустимо?). В этом случае ответа НЕТ по данному сегменту _не_выдается_).

Это сообщение отредактировал(а) Harkonnen - 12.7.2005, 14:48
PM MAIL   Вверх
$tatic
Дата 14.7.2005, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 28.1.2005

Репутация: нет
Всего: 22



Спасибо, Harkonnen. Это как раз то что нужно. smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0431 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.