2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Построение отрезков на поверхности сферы
Сообщение14.08.2007, 12:05 
Стоит следующая задача:

Имеется сфера заданного радиуса.
Есть координаты точек начала и конца отрезка. необходимо корректно отобразить его на сфере (то есть по сути определить его "кривизну").

То есть например если использовать такой метод построения:

// AS 2.0

moveTo(x1,y1);
curveTo(x2,y2,anc1_x,anc1_y);

где:

x1,y1: начальная точка отрезка на сфере (экранные координаты)
x2,y2: конечная точка отрезка на сфере (экранные координаты)

необходимо определить:

anc1_x,anc1_y: координаты точки, определяющей кривизну отрезка, так чтобы выглядело как будто он лежит на поверхности сферы.

Если кто-нибудь может как-то помочь - пишите.

Заранее спасибо :)

 
 
 
 Re: Построение отрезков на поверхности сферы
Сообщение14.08.2007, 15:13 
roland2 писал(а):
Стоит следующая задача:

Имеется сфера заданного радиуса.
Есть координаты точек начала и конца отрезка. необходимо корректно отобразить его на сфере (то есть по сути определить его "кривизну").

То есть например если использовать такой метод построения:

// AS 2.0

moveTo(x1,y1);
curveTo(x2,y2,anc1_x,anc1_y);

где:

x1,y1: начальная точка отрезка на сфере (экранные координаты)
x2,y2: конечная точка отрезка на сфере (экранные координаты)

необходимо определить:

anc1_x,anc1_y: координаты точки, определяющей кривизну отрезка, так чтобы выглядело как будто он лежит на поверхности сферы.

Если кто-нибудь может как-то помочь - пишите.

Заранее спасибо :)


Не очень понятно (по Вашему описанию) к чему относится Ваша задача. Или это на программирование, тогда Вам в раздел Computer Science форума, или же к математике (дифференциальной геометрии), тогда сюда, но непонятно тогда задание (потому что Вы его неважно сформулировали).

Если речь идёт об отрезке "прямой" (большие круги сферы), то понятно, что это геодезическая. Ну и что надо показать?

Upd.
Может Вам надо параметризовать кривую (например, величина угла может быть параметром)?

 
 
 
 Re: Построение отрезков на поверхности сферы
Сообщение14.08.2007, 15:40 
roland2 писал(а):
moveTo(x1,y1);
curveTo(x2,y2,anc1_x,anc1_y);

где:

x1,y1: начальная точка отрезка на сфере (экранные координаты)
x2,y2: конечная точка отрезка на сфере (экранные координаты)

необходимо определить:

anc1_x,anc1_y: координаты точки, определяющей кривизну отрезка, так чтобы выглядело как будто он лежит на поверхности сферы.


Macavity писал(а):
Не очень понятно (по Вашему описанию) к чему относится Ваша задача.


Вот чего хочет вопрошающий (гипотеза, разумеется)...
"Отрезок на сфере" при проектировании (центральном, параллельном) на плоскость (экран) будет выглядеть дугой плоской выпуклой кривой. В частности, если отрезок на сфере есть почти $2\pi$-окружность, то это может быть почти окружность на экране, или некий овал с маленьким вырезом, но roland2 пока об этом не задумывается. Он молча предполагает относительно короткую кривую. И рассчитывает представить её кривой Безье 2-го порядка, то бишь кусочком параболы. Я рисовал эту параболу среди прочих коников (или коник?) в этом сюжете (она там красненькая, а остальные кривые --- рациональные :P ). Его точка "anc1_x,anc1_y" --- контрольная точка этой кривой $P$. Обозначение "anc", наверное, из какой-то его системы, и происходит от якоря (anchor).
Т.е. ему надо (как-то) спроектировать начальные и конечние точки на эту самую плоскость-экран, туда же спроектировать 3D-касательные, и сосчитать искомый якорь в точке пересечения полученных 2D-касательных.

Я так думаю.

UPD. ... Либо, что то же самое, сосчитать 3D-точку пересечения 3D-касательных к "отрезку на сфере", и её спроектировать вслед за начальной и конечной точками.

Если я Вас правильно понял, roland2, то это и есть решение задачки. Как проектировать Вашу сферу на экран --- этого никто не знает, кроме Вас. Позаботьтесь, чтобы дуги были достаточно короткими. Длинную разбейте на кусочки. С поворотом не более $90^\circ$.

 
 
 
 
Сообщение14.08.2007, 17:12 
Аватара пользователя
:evil:
Алексей К. писал(а):
то это может быть почти окружность на экране, или некий овал

Эллипс?

Алексей К. писал(а):
UPD. ... Либо, что то же самое, сосчитать 3D-точку пересечения 3D-касательных к "отрезку на сфере", и её спроектировать вслед за начальной и конечной точками.

Согласен... если требуется гладкость согласования. Если не требуется, то можно пытаться «оттягивать» контрольную точке (anchor), оптимизируя кривую.

 
 
 
 
Сообщение14.08.2007, 17:20 
незваный гость писал(а):
Эллипс?

Да наверное... как ни проектируй... Видимо, я просто это слово забыл :D .

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group