Помощь - Поиск - Пользователи - Календарь
Полная версия: Геометрия Римана
Форум «Всё о Паскале» > Разработка ПО, алгоритмы, общие вопросы > Алгоритмы
Недогеометр
Кто-нибуть знает, как вычислять площади на сфере? Подскажите, пожл
Есть такая задача:
Задана градусами, минутами, секундами на сфере самонепересекающаяся замкнутая ломаная, найти отношение частей, на которые она делит сферу(большая часть к меньшей)
В хелпе к ней довольно малопонятное объяснение:
1).перейти к декартовым координатам вершин ломаной;(Это вроде нетрудно, но все равно непонятно, как сделать)
2).используя двойные векторное и скалярное произведения, определить внутренние углы криволинейного многоугольника с использованием центра шара как точки наблюдения;( blink.gif )
3).найти площадь многоугольника как произведение квадрата радиуса земного шара на разницу суммы внутренних углов и произведения числа Пифагора π на количество вершин, уменьшенное на 2. (Если знать, как сделать п.2-вроде нетрудно)
Lapp
Цитата(Недогеометр @ 15.02.2007 12:26) *

Задана градусами, минутами, секундами на сфере самонепересекающаяся замкнутая ломаная,

Не совсем ясно, при чем тут Риман, да ладно.
Вопрос по существу:
Я так понимаю, что заданы узлы ломаной. Правильно? Тогда возникает вопрос, как они соединены. Дугой большого круга? то есть дугой, получающейся от сечения плоскостью, проходящей через два узла и через центр сферы.
Это верно?
Недогеометр
Да, эти точки соединены меньшими дугами окружностей с центрами в центре сферы
Собственно, мне уже показали одно решение, правда сказали, что не могут его доказать. Оцените, пожалуйста, верность:
1). Переводим градусы, минуты, секунды в радианы по формуле
тета(радианы широты)=(градус ш.+(мин.ш/60)+(сек.ш/3600))*П/180, анологично для долготы(угол ф)
2). Переводим положения точек в декартову систему координат по формулам(тут я не уверен)
х=синус(тета)
у=косинус(тета)*косинус(ф)
зед=косинус(тета)*синус(ф)
3). В 3 мерном пространстве задаются векторы от центра до точек А(й-1),А(й),А(й+1) (а,б,с)
4). Векторы от точки А(й) до точки А(й+1) и А(й-1) по фомулам(тут опять не уверен):
у=от А(й) к А(й-1)=(б*а)*б
в=от А(й) к А(й+1)=(б*с)*б
и это вроде касательные к А(й) по А(й)А(й-1) и А(й)А(й+1) (направление)
5).^e=(вектор е)/(модуль вектора е)=единичный вектор, сонаправленный с е
^у,^(у*б),^б-три взаимно перпенд вектора
6).Находим кх=^(у)*в и ку=^(у*б)*в
7). Это я уже совсем не понимаю почему, но угол А(й-1)А(й)А(й+1) будет равен углу между отрезком
(0,0)-(кх,ку) и осью абсцисс в системе координат ^(у) от ^(у*б), т.е а прямоугольной, декартовой
,т.е. угол будет равен арксинусу(ку/кх)
Если кто-то найдет ошибки или псевдонаучные рассуждения-сразу говорите. Спасибо
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.