Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Построить сферу на OpenGl вручную. не используя glu-товской библе


Gritzan ©   (2002-12-09 23:41:00) 

Народ подскажите кто знает формулу по которой можно потроить сферу
или ссылки на сайт на которой они есть подскажите?
Я пробовал по sqr(x)+sqr(y)+sqr(z)=sqr(r-радиус); он строит только одну
часть, делая одну кординату отрицательной, получается большой разрыв между двумя частями!


JrKI   (2003-03-04 08:06:00) [1]

Ага! Без glut !
А в исходнике glut посмотри!
Только gluK из нее не сделай!


Alek Aaz   (2002-12-15 03:26:00) [2]

Мне. Получил. Сенькс. Жую.


zavdim   (2002-12-13 06:57:00) [3]

ну ты для начала параллелепипед, пирамдку построй с правильно настроенными нормалями. Инфы по этому поводу - море, пошарься в инете. Во многих статьях это разжевано до зубной боли. Потом к сфере переходи. А прогу я не тебе посылал?


Alek Aaz   (2002-12-11 19:24:00) [4]

не серы , а сферы. опечатка, сорри.


Alek Aaz   (2002-12-11 19:19:00) [5]

Трудно.
Говорю.
Формулы - понятно, и просто. Математика. А вот практика ...
Насколько я понимаю должно быть как минимум 3 точки. Две в "низу" и одна в "верху". Обход этих точек определяет нормаль. Сие теория. Практики нет.

P.S. Что такое регулярная сетка для создания полигональной серы и не регулярная?


zavdim   (2002-12-11 11:12:00) [6]

1.Нужен набор точек лежащих на сфере.
2. Ты берешь меняешь два угла - один от -пи/2 до пи/2. и второй от -пи до пи. Тоесть - двойной цикл.
3. Есть параметрическое представление сферы - это ведь двумерное многообразие, значит двух параметров нам хватит.
4. Формулы такие:
x:=Rx*cos(alpha2)*cos(Alpha1);
y:=Ry*sin(alpha2)*cos(Alpha1);
z:=Rz*sin(Alpha1);
Если Rx=Ry=Rz, то получим сферу иначе эллипсоид. Внешний цикл по Alpha1, внутренний по Alpha2.
Получишь точки, ну и начинаешь на их основе треугольники строить.
Какие должны образовывать треуг. и как лучше организовать - подумай, если трудно - то скажи.
А нормаль треугольника определить - можно, по тому же векторному произведению, только со знаком уж потыкаться надоть.


Alek Aaz   (2002-12-11 10:56:00) [7]

2 zavdimНе понял последний пост.
Вообще-то построение сферы мне нужно по двум сообращениям.
1. Создать сферу с нормалями внутрь. Чтобы фон космоса нацепить. Можно конечно на готовую, но под рукой нет 3Д Макса.
2. Шальная идея делать планету. Рисуем шар, а при приближении, при перерисовке начинаем постепено добавлять смещение для гор по карте высот.

Для начала хотелось бы сделать задачу минимум.


zavdim   (2002-12-11 07:40:00) [8]

Тут лучше параметрическое задание сферы использовать, а не приведенное выше.


zavdim   (2002-12-11 07:39:00) [9]

У меня есть тексты - можешь поразбирать. Я их года полтора назад писал - не ахти что, но смысл уловить можно.
Там я тор строю и еще чего-то.
Если не против, то кину на мыло.


Alek Aaz   (2002-12-10 18:22:00) [10]

И все-таки. Как. Покажите на примере. Формула то работает. Но на сфере как-то нужно поставить нормали для треугольников из которых она состоит. Вообще я только теоретически понимаю как она строится а на практике не получается.


Ketmar   (2002-12-10 11:43:00) [11]

а она и выводится по частям. сначала одна полусфера, затем другая. см. исходники.

Satanas Nobiscum! 10-Dec-XXXVII A.S.


(AD)acid   (2002-12-10 06:36:00) [12]

При решении данного уравнения получаем
z1=sqrt(sqr(r)-sqr(x)-sqr(y)) - Верхняя часть сферы
z2=-sqrt(sqr(r)-sqr(x)-sqr(y))- Нижняя часть сферы
Поэтому ,наверно , придётся выводить по частям
я это как-то делал но не в Delphi а в Borland pascal"е
хотя это было давно и не правда


Наверх

Титульная страница Поиск, карта сайта Написать письмо