PDA

Просмотр полной версии : Трансформировать плавно тригонометрические объекты



Aprisobal
19.05.2006, 16:48
Меня интересует вопрос, каким образом можно преобразовать например куб в цилиндр, пирамиду, сферу...? На вскидку задача простая, но сразу не дается. Просто хотелось бы, чтобы фигура была со плошной заливкой граней.
Как это сделать? Поиск в инете по ключевым словам "морфинг"(morphing) ничего не дал.

CHRV
19.05.2006, 17:07
Меня интересует вопрос, каким образом можно преобразовать например куб в цилиндр, пирамиду, сферу...? На вскидку задача простая, но сразу не дается. Просто хотелось бы, чтобы фигура была со плошной заливкой граней.
Как это сделать? Поиск в инете по ключевым словам "морфинг"(morphing) ничего не дал.
Как правило делается сопоставление неких ключевых точек на одной фигуре с другой фигурой и после этого строится уже алгоритм преобразования.

icebear
19.05.2006, 17:52
Меня интересует вопрос, каким образом можно преобразовать например куб в цилиндр, пирамиду, сферу...? На вскидку задача простая, но сразу не дается. Просто хотелось бы, чтобы фигура была со плошной заливкой граней.
Как это сделать? Поиск в инете по ключевым словам "морфинг"(morphing) ничего не дал.

Делишь тело на слайсы (треугольники или прямоугольники) и изменяешь координаты их опорных точек.

Знахарь
19.05.2006, 18:24
Лично я ничё не понял... :) А как-то так, чтоб можно было понять и более того - применить ???

marat151
19.05.2006, 18:35
Для начала смотрим ZX_ревю 3/95 стр.3.

icebear
19.05.2006, 19:46
Лично я ничё не понял... :) А как-то так, чтоб можно было понять и более того - применить ???

Возьми допустим параллелепипед и пирамиду с квадратом в основании. Параллелепипед (слово-то какое!) будет иметь 8 опорных точек и 6 слайсов (точки - в углах тела, слайсы - стороны тела). Пирамиду можно сделать из 5-ти опорных точек (вершина - это общая точка для всех граней) и пяти слайсов (4 грани и основание). Это позволит её быстро рисовать. А можно так не делать, что бы для морфинга проще было. Можно пирамиду так же составить из 6-ти слайсов так, что пять из них останутся неизменными, а у шестого координаты его опорных точек будут совпадать, так что этот слайс будет представлять собой точку в пространстве. У обоих тел теперь одинаковое колличество слайсов и опорных точек. Берём параллелепипед, выбираем одну из малых граней и изменяем координаты всех опорных точек этой грани в одинаковое значение. Получаем пирамиду :) Что бы красивше было - делаем цикл мееееедленно.

hi_soft
20.05.2006, 22:02
Меня интересует вопрос, каким образом можно преобразовать например куб в цилиндр, пирамиду, сферу...?

Можно видио ролик взять.. с уже готовыми..
в принципе тоже не плохо.. :rolleyes:

А тебе какие 3Д или 2х мерные..

пробывать лучше с 2х мерных..

возьми 2 формулы постраения куба и круга..

построй а далее выравнивай .. перемещением точек с одного
места на другое, ну а кол-во точек выбери сам

Кол-во точек у куба и круга.. т.е. равны они по сумме или нет
будут с уменьшением или равны.. после\до

Aprisobal
22.05.2006, 00:17
Это позволит её быстро рисовать.Пока не собираюсь реализовывать это на спеке. Надо хотя бы что-нибудь получить на ПЦ.

Для начала смотрим ZX_ревю 3/95 стр.3.Не нашел ничего по сабжу. Там только "Спектрум в школе" и бейсик-программа :((

У обоих тел теперь одинаковое колличество слайсов и опорных точек. Берём параллелепипед, выбираем одну из малых граней и изменяем координаты всех опорных точек этой грани в одинаковое значение. Получаем пирамидуОк, попробую сначала это сделать. Но какой алгоритм применить для преобразования куба в призму/цилиндр?

icebear
22.05.2006, 12:20
Пока не собираюсь реализовывать это на спеке. Надо хотя бы что-нибудь получить на ПЦ.

Советую заглянуть на 3DFAQ на enlight.ru. Там описаны принципы, но на мой взгляд для совсем новичка суховато.


Ок, попробую сначала это сделать. Но какой алгоритм применить для преобразования куба в призму/цилиндр?

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

Aprisobal
22.05.2006, 22:27
Советую заглянуть на 3DFAQ на enlight.ru. Там описаны принципы, но на мой взгляд для совсем новичка суховато.Спасибо за ссылку, но уже кое-как разобрался с OpenGL и в инете есть много примеров/классов для работы с векторами и пр.(да и Си благодаря SjASMPlus немного изучил). Буду пробовать делать.

Поищи книгу Порева "Компьютерная графика", там рассказываются вообще азы, причём доступно очень.Посмотрел краткое содержание на bhv.ru, но там слишком кратко. Если эта книга у тебя есть, то напиши, плз, есть ли в ней что-нибудь по данной теме?

rasmer
22.05.2006, 22:55
Советую заглянуть на 3DFAQ на enlight.ru. Там описаны принципы, но на мой взгляд для совсем новичка суховато.Скажу тебе по секрету, но это faq уже более чем год назад был перетащен на спек в системе qhts мной и Scl... вот так вот... лежит тут (http://scenergy.natm.ru/files//dd3d.zip)

icebear
23.05.2006, 11:33
Спасибо за ссылку, но уже кое-как разобрался с OpenGL и в инете есть много примеров/классов для работы с векторами и пр.(да и Си благодаря SjASMPlus немного изучил). Буду пробовать делать.

Это не тру :), это сравнительно легко.


Посмотрел краткое содержание на bhv.ru, но там слишком кратко. Если эта книга у тебя есть, то напиши, плз, есть ли в ней что-нибудь по данной теме?

Если кратко, то там рассказывается о компьютерной и немного типографной (если мой русский уже не русский, то сорри :) ) графике, начиная от теории цвета (там длины волны, треугольник Максвелла), продолжая описанием систем координат (декартова, полярная и т.д.), трансформаций на плоскости и в пространстве (т.н. афинные преобразования), описание примитивных тел и фигур, построение сцен, описание и построения источников света и т.п. Вобщем, если хочешь глубоко разобраться в компьютерной графике (а не стать ещё одним спецом по OGL, что в принципе тоже неплохо, но не очень интересно), то эта книга - отличное начало.

icebear
23.05.2006, 11:36
Скажу тебе по секрету, но это faq уже более чем год назад был перетащен на спек в системе qhts мной и Scl... вот так вот... лежит тут (http://scenergy.natm.ru/files//dd3d.zip)

Ты не поверишь, но этот файлик пролетал здесь и имено из-за этой системы qhts поднялось небольшое обсуждение браузеров с моим скромным участием :)

Aprisobal
24.07.2006, 15:30
В общем вот, что в результате смог получить. Фигуры: куб, пирамида, призма, сфера.
Использовал Allegro+MASKinG+OpenGL.
Как-то улучшать программу желания уже нет.