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

Вниз

Рисование поверхностей (желательно OpenGL)   Найти похожие ветки 

 
Ricks ©   (2005-10-11 01:14) [0]

Необходимо создать программу, которая рисовала бы поверхности. Это общая задача.
Теперь тонкости и особенности:
-необходимо, чтобы она [программа] рисовала не только явно заданые поверхности, но и такие F(x, y, z) = 0
-рисование цилиндрических поверхностей (те если одна из координат отсутствует)

Каким образом это осуществить? Особенно интересует само построение графика (например сферы x^2 + y^2 + z^2 = R^). Если выразить z, то придется рисовать 2 поверхности (+ и - sqrt()). А надо рисовать сразу всю сферу!
Вот как такое сделать?


 
Eraser ©   (2005-10-11 01:20) [1]


> Ricks ©   (11.10.05 01:14)

Оч. советую книку по OpenGL называется по-моему "OpenGL на Делфи"... но не уверен, автор Краснов.


 
Ricks ©   (2005-10-11 01:37) [2]

Тут дело не в OpenGL.
Я спрашиваю КАК организовать цикл (или что там еще) для построения такой неявно заданной поверхности! И как разобрать выражение, которое написал пользователь. Например [x^2 + y^2 - z] = 0 как из такого выражения мне "получить" параболоид?


 
Asdf123   (2005-10-11 04:29) [3]

asdf


 
Ricks ©   (2005-10-12 00:15) [4]

Вобщем, я так понял, что у народа нет идей (или желания этим заниматься) а как насчет студентов, которые проходят (прошли) аналитичекую геометрию (или мат.анализ, разделы о тройном интергале)???
Что, действительно нет идей?


 
Eraser ©   (2005-10-12 00:29) [5]


> Ricks ©   (12.10.05 00:15) [4]

Идеи есть, например, пиши свой графический движок.


 
Германн ©   (2005-10-12 01:29) [6]

2 Eraser ©   (12.10.05 00:29) [5]
Автору сабжа врядли нужно писать "свой движок".

Имхо, ему нужен:
1. Алгоритм
2. Парсер

По всем показателям, имхо, лучше бы гляделся сей топик в "для начинающих". Там и ответят с большей вероятностью и помогут в следущий раз чётче формулировать вопрос.


 
Ricks ©   (2005-10-12 10:18) [7]

Не знаю, насколько это для начинающих.....
Парсер у меня какой-никакой есть, а вот нужен сам метод (пускай это называется алгоритм).....

Как мне поможет графический движок?
Мне нужна реализация.....

Ставлю вопрос более узко, и более конкретно:
как найти точки, которые удовлетворяют введенному уравнению F(x,y,z) = 0
не перебором же... тем более что значения могут быть "далеко" не целыми.....


 
-=S..S=-   (2005-10-12 11:17) [8]

Если честно то такое уравнение решение не имеет .. вернее методики по его решению
[x^2 + y^2 - z] = 0
Не хватает условий ... что бы решить уравнение с тремя переменными неоюходимо и достаточно иметь систему уравнений третьего порядка ...
что то на данном уравнении вопрос поставлен не точно .... кроме как перебора никак ...
Хотя можна по очереди считать каждую из двух неизвестных нулями и решать уравнение с одной переменной ... в итоге получиться три корня уравнения


 
Sapersky   (2005-10-12 13:45) [9]

[x^2 + y^2 - z] = 0 как из такого выражения мне "получить" параболоид?

z = x^2 + y^2
Цикл по x,y. Считаем z. Получаем набор точек x,y,z - из них формируем поверхность.


 
Tonich ©   (2005-10-12 15:35) [10]

посмотри в сторону GlScene - она конечно не особо быстрая но может тебе и подойдет


 
Ricks ©   (2005-10-13 01:41) [11]


> Sapersky

Проблемма как раз в том, чтобы не выражать z(x, y) а рисвать неявно заданную поверхность...


> -=S..S=-  

Видимо только так или сечениями...

Вобщем пролетел я с такой прекрастной идеей... :)


 
Sapersky   (2005-10-13 11:54) [12]

Проблемма как раз в том, чтобы не выражать z(x, y) а рисвать неявно заданную поверхность...

Но для того чтобы нарисовать, нужно получить координаты точек и создать полигональную модель. А для того чтобы получить координаты точек, нужно выразить.
Неужели сложно?
Со сферой - не вижу ничего страшного в том, чтобы рисовать отдельно нижнюю и верхнюю полусферы... или считать формулу так:
a := Sqr(R) - Sqr(x) - Sqr(y);
If a > 0 then z:=Sqrt(a) else z:=-Sqrt(Abs(a));

Или сферическими координатами - двойной цикл по углам phi и teta (также как по x,y), R = const, выражаем x,y,z по формулам:

http://astronomy.swin.edu.au/~pbourke/projection/coords/

Ты графики обычных функций 1-й переменной рисовал когда-нибудь (y = x^2 и т.п.)? Если нет, потренируйся на них. С 2-мя переменными точно такой же принцип. Ну разве что формирование поверхности (описание треугольников) сложнее, но можно для начала попробовать точками или линиями.



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

Форум: "Основная";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.038 c
2-1129391518
DimaDima
2005-10-15 19:51
2005.11.06
к массивам по индексам в их имени


2-1129180521
Timur
2005-10-13 09:15
2005.11.06
MS SQL и Delphi


14-1129192588
Ne vajno
2005-10-13 12:36
2005.11.06
Антивирус


1-1129547697
Oleg_
2005-10-17 15:14
2005.11.06
как задать шрифт заголовка окна под win 2003


1-1129130135
DelphiLexx
2005-10-12 19:15
2005.11.06
Экспорт TChart в Word





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский