![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Построить сферу на 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"е
хотя это было давно и не правда