![]() |
![]() |
|
v7: Принадлежность точки к площади | ☑ | ||
---|---|---|---|---|
0
gabatel
31.05.12
✎
16:06
|
Помогите пожалуйста два дня мучусь никак решить не могу.
Есть SQL база данных в которой имеются координаты транспортного средства которые передает навигатор.Нужно как то определитель находиться ли транспортное средство например на с/х поле и не превышает ли скорость на нём,дорогу. Думаю создать базу данных из координатами полей примерно от 15 до 50 точек,и как то с ними оперировать,из 1С 7.7 |
|||
1
МихаилМ
31.05.12
✎
16:08
|
в скл 2008 появились Пространственные типы
http://msdn.microsoft.com/ru-ru/library/ff848797 |
|||
2
palpetrovich
31.05.12
✎
16:15
|
тут смотрел? wiki:Задача_о_принадлежности_точки_многоугольнику
зы: ну и задачки однако :) |
|||
3
gabatel
31.05.12
✎
16:41
|
Нашол js скрипт который проверяет количество пересечений,нужно ка кто это скрипт из 1С выполнить,выводит ошибку,подскажите в чём ошибка.
|
|||
4
gabatel
31.05.12
✎
16:43
|
И смогу ли я в массив points загнать ТаблицуЗначений с координатами полей
|
|||
5
vde69
31.05.12
✎
16:45
|
есть такое "Триангуляция Делона"
суть твоей задачи сводится к 2м этапам 1. с помощью триангуляции разбиваень произвольную площадь на треугольники 2. для каждого треугольника определяешь внутри точка или нет задачка совсем не сложная :) я делал куда сложнее |
|||
6
vde69
31.05.12
✎
16:47
|
(3) на сколько я понял скрипт в (3) примерно так и работает, только вот он только для выпуклых полигонов подходит :)
|
|||
7
gabatel
31.05.12
✎
16:51
|
У меня есть еще в базе и высота над уровнем моря
|
|||
8
vde69
31.05.12
✎
16:51
|
кстати у меня даже код на 1с был для трехмерной триангуляцции
|
|||
9
andrewalexk
31.05.12
✎
16:52
|
(8) :) сурово....что моделировал?
|
|||
10
vde69
31.05.12
✎
16:54
|
(9) сканер 3д выдает поле точек обьекта, нужно построить твердотельное тела для солид систем.
|
|||
11
vde69
31.05.12
✎
16:55
|
(9) только очень долго, лям точек обрабатывается примерно неделю
|
|||
12
gabatel
31.05.12
✎
16:55
|
Скинь код если можешь
|
|||
13
Злопчинский
31.05.12
✎
23:38
|
на ИС есть разработки с мапами, в т.ч. иконтроль нахожденяи транспортного средсва в периметре
|
|||
14
Злопчинский
31.05.12
✎
23:40
|
определить находится или нет можно тупо - если совсем никак.
есть карта, пусть будет двухцветный битмап. контролируемая площадь - черный цвет, запределы - белый. получаем координаты нужнйо точки, читаем цвет - определяем что мы либо за пределами, либо внутри. При предварительной подготовке битмапов контролируемых площадей - практически мгновенно... |
|||
15
gabatel
01.06.12
✎
09:38
|
Вариант с цветом неплохой,только как реализовать это,где я буду хранить эти поля,или есть какая та программа?, и как их потом считывать и знать где они находятся?
|
|||
16
vde69
01.06.12
✎
09:39
|
вариант с цветом плох тем, что мы перемешиваем раст и вектор, может боком вылезти
|
|||
17
gabatel
01.06.12
✎
09:45
|
Согласен
|
|||
18
dk
01.06.12
✎
09:49
|
(16) имхо зависит от нужной погрешности, если +/- 100 метров, то при растре 1 точка = 10..50 метров пофиг
не нужна для данной задачки высокая точность, это не резка лазером |
|||
19
gabatel
01.06.12
✎
10:13
|
Не согласен,есть много полей вокруг которых идет полевая дорого,и есть через поле,будит сообщать что превышение на поле
|
|||
20
dk
01.06.12
✎
10:21
|
ты бы сначала точность своих gps приемников проверил, а уже потом у нужной тебе точности рассуждал
|
|||
21
gabatel
01.06.12
✎
12:25
|
Не могу найти в чем ошибка?,в html код работает
Скрипт= СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.language="javascript"; Скрипт.AddCode(" |function isPointInPoly(poly, pt){ |for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i) | ((poly[i].y <= pt.y && pt.y < poly[j].y) || (poly[j].y <= pt.y && pt.y < poly[i].y)) | && (pt.x < (poly[j].x - poly[i].x) * (pt.y - poly[i].y) / (poly[j].y - poly[i].y) + poly[i].x) | && (c = !c); | return c; | } | points = [ | {x: 49.325829, y: 26.854756}, | {x: 49.326994, y: 26.857169}, | {x: 49.324019, y: 26.860754}, | {x: 49.325577, y: 26.853961}, | {x: 49.325439, y: 26.864316}, | {x: 49.327067, y: 26.866709}, | {x: 49.323869, y: 26.871692}, | {x: 49.323246, y: 26.867334}, | {x: 49.322805, y: 26.866486}, | {x: 49.320791, y: 26.865787}, | {x: 49.320452, y: 26.860936}, | {x: 49.320955, y: 26.859675}, | {x: 49.322664, y: 26.858469}, | {x: 49.323591, y: 26.858516}, | {x: 49.324285, y: 26.857736}, | {x: 49.324858, y: 26.856305}, | ]; | alert(isPointInPoly(points, {x: 49.323296, y: 26.857411}) ? "+"да "+": "+"нет"+"); |"); Текст=СокрЛП(Скрипт.Run("isPointInPoly(points, {x: 10, y: 10})")); |
|||
22
gabatel
01.06.12
✎
12:27
|
И возможно ли в массив points загнать координаты из таблицы значений
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |