Страница 1 из 1

Построение сети Чебышева на поверхности сферы

Добавлено: Ср ноя 07, 2007 7:09 am
Legioner
Доброе время суток!

При попытке получения развертки поверхности 1/8 части сферы по формулам Чебышева возникла проблема собственно аналитического (не геометрического)построения сети Чебышева на такой поверхности.

Пусть параметрически (theta=0..pi/2, phi=0..pi/2)или аналитически (x=0..1, y=0..1, z=0..1) задана поверхность 1/8 части сферы.

Задача: аналитически построить на такой поверхности сеть Чебышева (рассчитать декартовы или сферические координаты узлов такой сети).


К сожалению, что-либо внятное построить не удается (ни через пересечение дуг-образующих сферы под углом pi/2, ни через параллельный перенос). Поэтому буду искренне рад расчетным формулам, по которым получение координат узлов сети Чебышева станет возможным.

P.S. Позднее выложу пример сети Чебышева из статьи, а также первый и второй варианты моих попыток.

Добавлено: Сб янв 26, 2008 9:43 pm
Legioner
Пришло время собирать камни.


Не так давно удалось решить эту задачу. Весьма проста оказалась, и, тем не менее, привожу нехитрый алгоритм:

1. Строим базис

Необходимо задаться парой геодезических линий, которые буду служить "базисом" сети Чебышева на поверхности сферы. Например:

x = [sin(i*0.5*pi/count), 0, cos(i*0.5*pi/count)]
y = [0, sin(j*0.5*pi/count), cos(j*0.5*pi/count)]

Эти выражения рассчитываются для i=0 или j=0 (i=0,count; j=0,count), например для десяти точек (count=10). Найденные x и y будут являться точками-основами для четырехугольника сети на геолиниях.

2. Плетем сеть

Итак, самое интересное. Положим, что эти же точки (x, y) являются центрами сфер с радиусом r. Возникает задача нахождения точек пересечения (A, B) для трех сфер: большой сферы радиусом R, на поверхности которой мы строим сеть, и двух сфер-челноков. Корни следующей системы уравнений позволяют найти такие точки:

(x-x0)^2 + (y-y0)^2 + (z-z0)^2 = R;
(x-x1)^2 + (y-y1)^2 + (z-z1)^2 = r;
(x-x2)^2 + (y-y2)^2 + (z-z2)^2 = r;

Здесь: (x0, y0, z0) - тройка координат для центра большой сферы, (x1, y1, z1) и (x2, y2, z2) - для центров малых сфер соответственно. Из решения уравнения берется только второй корень - B - он будет соответствовать искомой "нижней" точке для ромба сети:

A
x y
B

3. Повторяем шаги

Если представить подход графически, обозначив B за базисные точки, а C - за вычисленные, можно прийти к следующей карте:

0 1 2 3 4 5 . . .
0 B B B B B B
1 B C C C C C
2 B C C C C
3 B C C C
4 B C C .
5 B C .
. .
.
.

То есть, плетение осуществляется итеративно, например, по точкам (1,0;0,1) находим точку (1,1), далее уже по вычисленным координатам (2,0:1,1) находим точку (2,1).

4. Реализация

Как часть основной задачи этот алгоритм был реализован в MATLAB-овском модуле с небольшими "излишествами". Часть сети, что лежит ниже плоскости z=0 может быть легко обрезана при необходимости.

5. Примеры

К сообщению также приложены два файла: для чебышевской сети на поверхности 1/8 сферы и для ее развертки на плоскости (строится прямым перемножением по (i,j) матрицы vertices из расчета Lгеолинии = pi/2 = 1.5708).

Надеюсь, пост будет полезным ;-)
Изображение
Изображение

Re: Построение сети Чебышева на поверхности сферы

Добавлено: Пн янв 08, 2018 11:25 am
Snowbirer
А у вас не осталось случаем программной реализации данного алгоритма?