![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Читаю Кормена
Пользователь
Регистрация: 28.12.2008
Сообщений: 46
|
![]()
Я конечно не студент, но нужна помощь.
Нужно найти площадь многоугольника, заданного вершинами (longitude, latitude) (Англоязычный гугл исхожен вдоль и поперек, в русскоязычном ничего адекватного не нашел) Мое решение на питоне pastebin. Сразу поясню: В начале мы имеем некий набор координат в формате degrees, minutes Я перевожу их прям там же в стандартный формат (градусы с десятичной частью). Дальше по формулам из wiki перевожу их в формат ECEF (earth-centred, earth-fixed). А вот в дальнейшем коде я не уверен. Я считаю площадь зоны, ограниченной этими точками, методом векторного произведения. Я сомневаюсь, что это верно. Нужна Ваша помощь в подсчете площади. PS для любопытных: координаты в программе - зона в Финском заливе. Последний раз редактировалось Merkator; 06.07.2011 в 14:12. |
![]() |
![]() |
![]() |
#2 |
Читаю Кормена
Пользователь
Регистрация: 28.12.2008
Сообщений: 46
|
![]()
Ладно... видимо задача несколько отличного от форумского профиля.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 75
|
![]()
терпеливее будьте или вы думаете, что после размещения вашей проблемы, сразу же весь форум полезет её решать?
|
![]() |
![]() |
![]() |
#4 |
Читаю Кормена
Пользователь
Регистрация: 28.12.2008
Сообщений: 46
|
![]()
Прошу прощения, что задел ваши чувства.
Я и не думал, что весь форум сразу же полезет ее решать. Я почитал последние вопросы, понял специфику форума и то, что задачу я здесь (скорее всего) зря опубликовал. Но раз опубликовал, то постараюсь довести решение до логического конца: Я понял в чем ошибка в моем коде. Тем методом, которым я считаю площадь, я получаю не площадь нужной мне фигуры, а площадь боковых граней "пирамиды" с центром в (0, 0) и основанием - тем самым полигоном. Пирамида в кавычках потому, что основание у нее не плоское, а некий сектор сферы (геоида). Ищу теперь иной метод для подсчета. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
![]()
Там, у Вас, на самом деле, по-моему, тоже немного не так, но для начала скажите, пожалуйста: а Вам от кординаты Z отказаться - очень тяжело? Ну вот у Вас в примере: 5502.7, 5507.3, 5493.1, 5489.1. Относительная величина "плавания" Z - 3 десятых процента. Может, ну её, эту выпуклость Земли?..
|
![]() |
![]() |
![]() |
#6 |
Читаю Кормена
Пользователь
Регистрация: 28.12.2008
Сообщений: 46
|
![]()
Vago, мне кажется, что Z - не просто выпуклость Земли. Насколько я понял систему ECEF, то просто из центра Земли определенным образом отложена декартова система координат. И если я откажусь от Z, то скажем не в Финском заливе, а где-нибудь в Атлантике программа перестанет работать. (координата Z будет сильно меняться, а какая-нибудь Y наоборот не будет)
Но Ваша идея - хорошая, если ее доработать: давайте представим, что мы не уберем третью координату, а просто нормализуем (спроецируем) координаты, переведя все в плоскость. Тогда можно будет использовать алгоритм векторного произведения. Тогда появляется новый вопрос: как правильно нормализовать координаты? Последний раз редактировалось Merkator; 07.07.2011 в 13:34. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
![]()
Merkator, я - не специалист по ГИС и, к сожалению, ничего не знаю о картографических проекциях и нормализации. Меня пока смущает другое. У Вас там ответственность за то, чтобы вершины были введены "по порядку", на программисте лежит, да?
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
По-моему нужно просто переместить все точки до совмещения, например, ndata[0] с центром координат. Тогда Ваш цикл будет суммировать площади треугольников:
Код:
|
![]() |
![]() |
![]() |
#9 |
Читаю Кормена
Пользователь
Регистрация: 28.12.2008
Сообщений: 46
|
![]()
Нет, они уже даны в порядке обхода. А что?
|
![]() |
![]() |
![]() |
#10 | |
Читаю Кормена
Пользователь
Регистрация: 28.12.2008
Сообщений: 46
|
![]() Цитата:
Спасибо! |
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Даны площадь круга и площадь квадрата | Joker<777> | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 17.01.2012 07:00 |
ООП (паскаль) - дан ромб. найти площадь. построить пирамиду, найти её площадь | Rfn.if | Помощь студентам | 0 | 27.04.2011 16:10 |
Площадь прямоугольников | savraska | Помощь студентам | 7 | 04.06.2010 16:42 |
Вычислить площадь и т.д. | rmdzn | Microsoft Office Excel | 3 | 31.05.2010 22:16 |
Площадь фигур | Вор | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 18.05.2009 22:44 |