![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как развернуть цилиндр на плоскость?
Нет © (2006-03-17 02:23:00)Есть масса точек рассполженных строго на цилиндре с радиусом R. Надо развернуть эти точки на плоскость. Чтобы все расстояния между ними сохранились. Как это можно сделать?
GLScene.
grouzd[E]v (2006-03-23 15:35:00) [1]
> 1. Зачем радианы еще раз в орадианы?
Ну блин, на глазок писАл =)
> 2. Отображение не биективно. Точкам с одинаковой Z соответсвуют
> одинаковые образы.
> 3. Возьмем 2 точки на цилиндре(считаем что центральная ось
> - OZ) с координатами (-r,0,0) и (0,r,0). Расстояние по цилиндру
> между ними Pi*r/2, при вашем же подходе - на плоскости -
> у второй и образа нет.
Гм, действительно
---
... we are walking on a thin line and you better avoid the risk ...
Думкин (2006-03-23 08:45:00) [2]3. Хотя можно приписать образ, но все одно - расстояния не сохранятся и к тому же 2 - все убивает.
вернее x-[0,2*Pi*r)
Но, лучше рассматривать цилиндр как фактоизацию, по данной полосе всей плоскости. Тогда проблем с вычислением расстояний не будет. Ибо 2 точки могут быть близки на цилиндре, но далеки на полосе - ибо 2 точки можно связать 2-мя геодезическими имеющими соответсвующие отрезки разной длины. но можно на соседней полосе рассмотреть образ этой же точки и соединить отрезком. вот какой короче - таково и расстояние.
Думкин (2006-03-23 08:38:00) [3]> grouzd[E]v © (17.03.06 02:38) [1]
> труба вдоль оси Z, для каждой точки делаем
>
>
> const
> RADIAN = 180 / pi;
>
> r - радиус
> a := arctan(y / x);
> x := -sin( a / RADIAN) * r;
> y := -cos( a / RADIAN) * r;
Не верно.
1. Зачем радианы еще раз в орадианы?
2. Отображение не биективно. Точкам с одинаковой Z соответсвуют одинаковые образы.
3. Возьмем 2 точки на цилиндре(считаем что центральная ось - OZ) с координатами (-r,0,0) и (0,r,0). Расстояние по цилиндру между ними Pi*r/2, при вашем же подходе - на плоскости - у второй и образа нет.
Координаты на цилиндре - 2 числа (Z,Fi). Переход к полосе на плоскости с сохранением расстояний:
x - [0,2*Pi]
y - [-бесконечность, + бесконечность]
делается небольшим усилием.
Думкин (2006-03-23 07:33:00) [4]Точно. Год - 1985.
Обложка - http://kvant.mcnmo.mccme.ru/1985/02/pti.htm
А на обороте - обозначения чисел у разных народов:
http://kvant.mcnmo.mccme.ru/1985/02/pot.htm
Но текста нет. :(
А если серьезно разобраться желание есть - то дифференциальная геометрия - первая и вторая квадратичные формы. И далее.
Думкин (2006-03-23 07:19:00) [5]Год вроде спутал - 1985. А вот номер - вроде нет. Глобус на обложке был.
Думкин (2006-03-23 07:15:00) [6]> Нет (19.03.06 04:38) [6]
Это к картографам. Была статья на тему в №2 1986 года в Кванте. :о)
Нет (2006-03-19 04:38:00) [7]Обычные текстуры. Ну глянь в GLScene, например.
Как вообще лучше сделать развёртку шара на плоскость?
grouzd[E]v (2006-03-18 11:01:00) [8]Трехмерные текстуры?
---
... we are walking on a thin line and you better avoid the risk ...
Нет (2006-03-18 04:14:00) [9]Но ведь шары отекстуривают как то?
XProger (2006-03-17 11:35:00) [10]Нет, карты географические видел?
Нет (2006-03-17 03:12:00) [11]Спасибо!
Пойду проверю.
Кстати, а можно шар развернуть на плоскость?
grouzd[E]v (2006-03-17 02:38:00) [12]труба вдоль оси Z, для каждой точки делаем
const
RADIAN = 180 / pi;
r - радиус
a := arctan(y / x);
x := -sin(a / RADIAN) * r;
y := -cos(a / RADIAN) * r;
вроде так. если хочешь - посчитай на листочке, может че сократится
---
... we are walking on a thin line and you better avoid the risk ...