Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];

Вниз

Как развернуть цилиндр на плоскость?   Найти похожие ветки 

 
Нет   (2006-03-17 02:23) [0]

Есть масса точек рассполженных строго на цилиндре с радиусом R. Надо развернуть эти точки на плоскость. Чтобы все расстояния между ними сохранились. Как это можно сделать?

GLScene.


 
grouzd[E]v ©   (2006-03-17 02:38) [1]

труба вдоль оси 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 ...


 
Нет   (2006-03-17 03:12) [2]

Спасибо!
Пойду проверю.

Кстати, а можно шар развернуть на плоскость?


 
XProger ©   (2006-03-17 11:35) [3]

Нет, карты географические видел?


 
Нет   (2006-03-18 04:14) [4]

Но ведь шары отекстуривают как то?


 
grouzd[E]v ©   (2006-03-18 11:01) [5]

Трехмерные текстуры?

---
... we are walking on a thin line and you better avoid the risk ...


 
Нет   (2006-03-19 04:38) [6]

Обычные текстуры. Ну глянь в GLScene, например.
Как вообще лучше сделать развёртку шара на плоскость?


 
Думкин ©   (2006-03-23 07:15) [7]

> Нет   (19.03.06 04:38) [6]

Это к картографам. Была статья на тему в №2 1986 года в Кванте. :о)


 
Думкин ©   (2006-03-23 07:19) [8]

Год вроде спутал - 1985. А вот номер - вроде нет. Глобус на обложке был.


 
Думкин ©   (2006-03-23 07:33) [9]

Точно. Год - 1985.
Обложка - http://kvant.mcnmo.mccme.ru/1985/02/pti.htm
А на обороте - обозначения чисел у разных народов:
http://kvant.mcnmo.mccme.ru/1985/02/pot.htm
Но текста нет. :(

А если серьезно разобраться желание есть - то дифференциальная геометрия - первая и вторая квадратичные формы. И далее.


 
Думкин ©   (2006-03-23 08:38) [10]

> 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 08:45) [11]

3. Хотя можно приписать образ, но все одно - расстояния не сохранятся и к тому же 2 - все убивает.

вернее x-[0,2*Pi*r)
Но, лучше рассматривать цилиндр как фактоизацию, по данной полосе всей плоскости. Тогда проблем с вычислением расстояний не будет. Ибо 2 точки могут быть близки на цилиндре, но далеки на полосе - ибо 2 точки можно связать 2-мя геодезическими имеющими соответсвующие отрезки разной длины. но можно на соседней полосе рассмотреть образ этой же точки и соединить отрезком. вот какой короче - таково и расстояние.


 
grouzd[E]v ©   (2006-03-23 15:35) [12]


> 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 ...



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.045 c
15-1168854689
Vlad Oshin
2007-01-15 12:51
2007.02.04
Как Вы получаете в свою программу(если получаете) курсы валют?


2-1169382270
Cj
2007-01-21 15:24
2007.02.04
Выделение файла


15-1168405419
Steep
2007-01-10 08:03
2007.02.04
Какими компонентами, библиотеками вы пользетесь


2-1168513986
Gin2
2007-01-11 14:13
2007.02.04
ADODataset


4-1158738392
Petrovitch
2006-09-20 11:46
2007.02.04
Доступ к ресурсу (диску)?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский