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

Вниз

Вопрос по геодезии   Найти похожие ветки 

 
RDA ©   (2004-01-13 17:35) [0]

Как определить входит ли точка в определенный полигон (чаще всего неправильный многоугольник из 8-10 точек)?


 
Nikolay M. ©   (2004-01-13 17:45) [1]

Вроде обычная задача, тонна готовых примеров в исходниках, думаю, валяется?
Как вариант, такой: соединить искомую точку (X, Y) со всеми вершинами отрезками и посчитать сумму углов между ними. Т.е.
А1 - угол между отрезком от (X, Y) до первой вершины и отрезком от (X, Y) до второй вершины,
А2 - угол между отрезком от (X, Y) до второй вершины и отрезком от (X, Y) до третьей вершины и тд.
Чему будут равны суммы всех таких углов, когда точка принадлежит многоугольнику и когда - вне его, догадайся сам :)


 
RDA ©   (2004-01-13 18:15) [2]

Попробую уточнить.
Есть "Контур" - большой участок земли, (чаще всего имеет название, но не имеет координат).
Есть "Участки" - мелкие участки земли входящие однозначно в какой-либо контур.
Все координаты участков хранятся в базе данных.
Вопрос 1: Как не допустить ввдение участка с координатами попадающими в уже имеющиеся участки (координаты нового участка могут лишь лежать на меже имеющихся участков т.е. соприкосаться с ними, но их линии не должны пересекаться)?
Вопрос 2: Можно ли реализовать проверку в виде хранимой процедуры (визуальный контроль, мое мнение, сделать на много проще)?
Вопрос 3: Есть ли компоненты для визуального проектирования участков?

Координаты участков абсолютные.


 
Людка со 2 этажа   (2004-01-13 18:19) [3]

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


 
Юрий Зотов ©   (2004-01-13 18:35) [4]

На взгляд, похоже, что вся эта геодезическая картинка может быть представлена регионами Windows (CreatePolygonRgn). Если это так, то мы автоматически получаем набор уже готовых функций для работы с регионами (см. Region Functions в справке API).

В частности, на вопрос сабжа точно отвечает функция PtInRegion.


 
DiamondShark ©   (2004-01-14 00:35) [5]

Через точку проводим прямую, параллельную одной из осей (если система координат не декартова -- то вместо прямой будет геодезическая линия).

Идём по этой прямой из точки, заведомо лежащей вне контура к токе. Считаем пересечения с рёбрами контура. Если число пересечений нечётное -- точка внутри, если чётное -- снаружи.
ОСОБЫЙ СЛУЧАЙ если прямая проходит точно через вершину. Такое пересечение считать не нужно.



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

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

Наверх




Память: 0.48 MB
Время: 0.036 c
1-2224
Goida
2004-01-20 15:50
2004.02.02
Рамка таблицы в Word.


14-2350
.Lex
2004-01-08 11:11
2004.02.02
Да или нет?


1-2083
MadGhost
2004-01-19 23:18
2004.02.02
создание своего события в компоненте.


3-1970
Романов Р.В.
2004-01-09 12:01
2004.02.02
Выбор структуры БД


3-1997
Innokenty
2004-01-08 10:03
2004.02.02
База в access и поля Дата/Время. Проблема.