Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
agentbond007
Зарегистрирован: 08.12.2009 Сообщения: 56
|
Добавлено: Чт Июн 09, 2011 9:19 am Заголовок сообщения: Как получить информацию о полигоне? |
|
|
Здравствуйте!
Подскажите пожалуйста, есть ли в MapBasic`e функции для получения информации о полигоне?
Дано: Полигон
Найти:
Длины сторон и внутренние углы между ними?
Координаты вершин я нашёл при помощи комманд ObjectNodeX, ObjectNodeY, но как получить все остальное незнаю. |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Чт Июн 09, 2011 3:28 pm Заголовок сообщения: |
|
|
Нет таких функций. Все рассчитывайте самостоятельно по координатам. |
|
Вернуться к началу |
|
|
agentbond007
Зарегистрирован: 08.12.2009 Сообщения: 56
|
Добавлено: Вс Июн 12, 2011 2:37 pm Заголовок сообщения: |
|
|
Работаю в проекции Гаусса-Крюгера, расчитываю по координатам, длины сторон получаются с погрешностью + 0.2 / + 0.4 %:
- длинна линии по Y стороне = 100.0, а по расчётам 100.2
- длинна линии по X стороне = 100.0, а по расчётам 100.4
Хотя MapInfo показывает инструментом линейка что длинна = 100.0
Формулы такие:
dX := (X2-X1);
dY := (Y2-Y1);
AB := sqrt(dX*dX+dY*dY);
Может подскажите как побороть расхождение? |
|
Вернуться к началу |
|
|
agentbond007
Зарегистрирован: 08.12.2009 Сообщения: 56
|
Добавлено: Пн Июн 13, 2011 4:41 am Заголовок сообщения: |
|
|
Причём стандартная функция CartesianDistance ( x1 , y1 , x2 , y2 , unit_name ) даёт такой же результат с погрешностью.
А функция Distance ( x1 , y1 , x2 , y2 , unit_name ) по точнее.. |
|
Вернуться к началу |
|
|
Arhara
Зарегистрирован: 18.02.2009 Сообщения: 400 Откуда: Moscow, RF
|
Добавлено: Вт Июн 14, 2011 12:40 am Заголовок сообщения: |
|
|
теперь осталось показать нам формулу сферических углов и сравнить ее с углами на плоскости.
---
погрешности в 0,2% великоваты для правильно заданных проекции гаусса-крюгера, а погрешность в 0,4% вообще ни в какие ворота на 100 метрах не лезет.
---
кроме того мапинфо будет вас обманывать в любой визуализации данных с плавающей точкой, т.к. ВСЕГДА выводит на экран округленные данные. точный результат выводит только экспорт в MIF/MID, и принудительный вывод всех знаков после запятой командой Format$. |
|
Вернуться к началу |
|
|
|