Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.04;
Скачать: CL | DM;

Вниз

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

 
Gritzan ©   (2002-12-09 23:41) [0]

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


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

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


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

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

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


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

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


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

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


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

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


 
Alek Aaz ©   (2002-12-11 10:56) [6]

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

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


 
zavdim   (2002-12-11 11:12) [7]

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 19:19) [8]

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

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


 
Alek Aaz ©   (2002-12-11 19:24) [9]

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


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

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


 
Alek Aaz ©   (2002-12-15 03:26) [11]

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


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

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



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

Текущий архив: 2003.09.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.035 c
14-10903
Tornado
2003-08-18 13:02
2003.09.04
Отечественное автомобилестроение - письмо иностранца


1-10762
Nick_Omsk
2003-08-22 16:09
2003.09.04
Как организовать LOG?


14-10896
Dmk
2003-08-17 14:41
2003.09.04
Net messanger


1-10687
Delpher_Gray
2003-08-20 19:20
2003.09.04
Тормоза в программе !!


1-10751
Евгыш
2003-08-25 13:09
2003.09.04
Предотвращение выгрузки COM сервера