![]() |
|
|
![]()
|
|
| kosmonaFFFt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 538 Регистрация: 14.4.2008 Где: Иннополис Репутация: 1 Всего: 5 |
Доброговсем времени суток.
Надобно мне реализовать различные операции типа вращения, масштабирования и т. д. над 3D фигурами. С фигурами из прямых линий все просто - конверт в матрицу, умножить на матрицу преобразования и обратно в линию, и так со всеми линиями в цикле. Но по заданию надо чтобы в фигуре была криволинейная поверхность (мну надо цилиндр). В связи с этим возникают вопросы - в каком виде его лучше всего хранить и можно ли его как нибудь преобразовать в массив линий (с определенной долей потери качесва, например эллипс основания заменить на 10 - 15тиугольник), чтобы можно было применить уже готовые для линий методы преобразования. Порылся в гугле на тему уравнения эллиптического цилиндра, но картинка с формулой упорно не отображалась, + не знаю как его можно ограничить по длине (насколько я помню из математики, он бесконечный в длину). Заранее спасибо. -------------------- ![]() |
|||
|
||||
| dereyly |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 16.6.2006 Репутация: 1 Всего: 4 |
Ну линия вообщем говоря тоже бесконечна
А что тебе мешает так сделать? Цилиндров не существует (так же как и тортов, но торт сложная фигура и ее рассматривать не будем)... есть его только аппроксимации... Для единообразия можно триангулировать основание и стороны... PS С этим вопросом лучше в соседнюю тему по графике |
||||
|
|||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 1 Всего: 52 |
kosmonaFFFt
0) Аналитически, цилиндр построить проще пареной репы: берём уравнение окружности: x = cos(a), y = sin(a). Теперь производим его несколько раз, увеличивая, уменьшая z координату - получаем набор точек, который и будет цилиндром. Я так понял что проблема в его получении у вас есть. 1) Как ханить? Да просто набор точек, плевать на линии. 2) Как поворачивать/перемещать? Через матрицу преобразований 4x4, путём умножения её на вершину. См. разработку игр, тему "Скелетная анимация", можете на gamedev.ru -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| kosmonaFFFt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 538 Регистрация: 14.4.2008 Где: Иннополис Репутация: 1 Всего: 5 |
Спасибо, попробую. Хотя линии все равно нужн; ну да если точки есть, то и линии думаю проведу. -------------------- ![]() |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |