Поиск:

Ответ в темуСоздание новой темы Создание опроса
> цилиндр - как лучше хранить и отрисовывать? 
:(
    Опции темы
kosmonaFFFt
Дата 22.9.2008, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 538
Регистрация: 14.4.2008
Где: Иннополис

Репутация: 1
Всего: 5



Доброговсем времени суток.

Надобно мне реализовать различные операции типа вращения, масштабирования и т. д. над 3D фигурами.
С фигурами из прямых линий все просто - конверт в матрицу, умножить на матрицу преобразования и обратно в линию,
и так со всеми линиями в цикле. Но по заданию надо чтобы в фигуре была криволинейная поверхность (мну надо цилиндр).
В связи с этим возникают вопросы - в каком виде его лучше всего хранить и можно ли его как нибудь преобразовать
в массив линий (с  определенной долей потери качесва, например эллипс основания заменить на 10 - 15тиугольник), чтобы можно было применить уже готовые для линий методы преобразования.
Порылся в гугле на тему уравнения эллиптического цилиндра, но картинка с формулой упорно не отображалась, + не знаю
как его можно ограничить по длине (насколько я помню из математики, он бесконечный в длину).

Заранее спасибо.


--------------------
user posted image
PM MAIL ICQ   Вверх
dereyly
Дата 22.9.2008, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 16.6.2006

Репутация: 1
Всего: 4



Цитата

(насколько я помню из математики, он бесконечный в длину).

Ну линия вообщем говоря тоже бесконечна  smile 

Цитата

С фигурами из прямых линий все просто - конверт в матрицу, умножить на матрицу преобразования и обратно в линию,
и так со всеми линиями в цикле. Но по заданию надо чтобы в фигуре была криволинейная поверхность (мну надо цилиндр).
В связи с этим возникают вопросы - в каком виде его лучше всего хранить и можно ли его как нибудь преобразовать
в массив линий (с  определенной долей потери качесва, например эллипс основания заменить на 10 - 15тиугольник), чтобы можно было применить уже готовые для линий методы преобразования.

А что тебе мешает так сделать? Цилиндров  не существует (так же как и тортов, но торт сложная фигура и ее рассматривать не будем)... есть его только аппроксимации... 
Для единообразия можно триангулировать основание и стороны...

PS С этим вопросом лучше в соседнюю тему по графике
PM MAIL   Вверх
Rickert
Дата 23.9.2008, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 1
Всего: 52



kosmonaFFFt
0) Аналитически, цилиндр построить проще пареной репы: берём уравнение окружности: x = cos(a), y = sin(a). Теперь производим его несколько раз, увеличивая, уменьшая z координату - получаем набор точек, который и будет цилиндром. Я так понял что проблема в его получении у вас есть.
1) Как ханить? Да просто набор точек, плевать на линии.
2) Как поворачивать/перемещать? Через матрицу преобразований 4x4, путём умножения её на вершину. См. разработку игр, тему "Скелетная анимация", можете на gamedev.ru


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
kosmonaFFFt
Дата 23.9.2008, 05:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 538
Регистрация: 14.4.2008
Где: Иннополис

Репутация: 1
Всего: 5



Цитата(Rickert @  23.9.2008,  01:46 Найти цитируемый пост)
1) Как ханить? Да просто набор точек, плевать на линии.

Спасибо, попробую. Хотя линии все равно нужн; ну да если точки есть, то и линии думаю проведу.


--------------------
user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0386 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.