| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Построение поверхностей |
| Автор: pushok 4.2.2008, 02:48 |
| Ребят. Сижу не могу понять как строятся поверхности (студент лаб. работа) Нашел пример построения поверхности по точкам. Т.к. по точкам строится достаточно долго. Получается конечно красиво, но никак не могу понять полностью, а объяснить уж тем более не смогу. Может кто-нибудь знает способ по проще. Мне хотя бы сам алгоритм знать, а его я как-нить уж опишу (учусь на Delphi, но в принципе здесь можно и на словах) поверхность по-моему такая 2z = x*x/p + y*y/q (p,q>0) но это даже не так важно. Мне интересно как вообще строятся любые поверхности на двумерной плоскости (т.е. экране) заранее спасибо. |
| Автор: maxim1000 4.2.2008, 11:34 |
| вопрос в том, как представлять поверхность в памяти, или о способе вывода на экран так, чтобы у пользователя создалось ощущение объёма? |
| Автор: pushok 4.2.2008, 13:27 |
| второй вариант. о том как вывести на экран чтобы у пользователя создалось впечатлдение объема. вчера сидел, подумал, что можно попробовать построить так, как учили строить поверхности на Алгебре и Геометрии = ) но проблема вот в чем: там, в тетрадочке, меня совершенно не волновал вопрос о том как представить изогнутую линию, ведь я рисовал не по точкам. А в компьютере только два направления X и Y. Т.е. надо придумывать как строить кривые линии. Почему-то мне кажется это уже придумано. Но я пока додуматься немогу. Возможно прийдется иметь дело с кривизной кривой, или чем-то подобным, но пока понять немогу. В ссылках в закрепленных темах, нашел только про построение эллипсов. Про линии ничего не нашел. |
| Автор: PPS05 4.2.2008, 15:55 |
Да. Типично, кривые представляются в виде последовательных прямых отрезков, поверхности - треугольниками (их радость в том, что их представление из 3D в 2D всегда треугольник и его легко нарисовать). Значит, остается придумать, как найти положение точки на экране, которая имеет известные координаты в виртуальном трехмерном мире. Для этого изпользуются так называемые матрицы преобразования. Почитай про них - информации много. P.S. Чтобы отсечь невидимые точки (т.е. заслоняемые другими) используется метод Z-буфера. Про него тоже много чего написано. |