Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Программирование (http://zx-pk.ru/forumdisplay.php?f=14)
-   -   Трансформировать плавно тригонометрические объекты (http://zx-pk.ru/showthread.php?t=3139)

Aprisobal 19th May 2006 17:48

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

CHRV 19th May 2006 18:07

Quote:

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

Как правило делается сопоставление неких ключевых точек на одной фигуре с другой фигурой и после этого строится уже алгоритм преобразования.

icebear 19th May 2006 18:52

Quote:

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

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

Знахарь 19th May 2006 19:24

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

marat151 19th May 2006 19:35

Для начала смотрим ZX_ревю 3/95 стр.3.

icebear 19th May 2006 20:46

Quote:

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

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

hi_soft 20th May 2006 23:02

Quote:

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

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

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

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

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

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

Aprisobal 22nd May 2006 01:17

Quote:

Originally Posted by icebear
Это позволит её быстро рисовать.

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

Originally Posted by marat151
Для начала смотрим ZX_ревю 3/95 стр.3.

Не нашел ничего по сабжу. Там только "Спектрум в школе" и бейсик-программа :((
Quote:

Originally Posted by icebear
У обоих тел теперь одинаковое колличество слайсов и опорных точек. Берём параллелепипед, выбираем одну из малых граней и изменяем координаты всех опорных точек этой грани в одинаковое значение. Получаем пирамиду

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

icebear 22nd May 2006 13:20

Quote:

Originally Posted by Aprisobal
Пока не собираюсь реализовывать это на спеке. Надо хотя бы что-нибудь получить на ПЦ.

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

Quote:

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

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

Aprisobal 22nd May 2006 23:27

Quote:

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

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

Originally Posted by icebear
Поищи книгу Порева "Компьютерная графика", там рассказываются вообще азы, причём доступно очень.

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


All times are GMT +4. The time now is 21:19.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.