Russian Qt Forum
Ноябрь 22, 2024, 14:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Гнем трубу  (Прочитано 3549 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Август 27, 2014, 13:42 »

Добрый день

Есть труба (модель цилиндра). Есть ф-ция вызывая которую для каждого вертексв мы получаем изгиб трубы (2 картинки справа)
Код
C++ (Qt)
void Bend( QVector3D & position,  // координаты вертекса
               double angle,               // угол изгибв (на картинках оба 90)
               const QVector3D & minimum,                  
               const QVector3D & maximum );  // bounding box в котором гнем
Ф-ция поворачивает вертексы используя их расстояние по оси Y, текущий угол поворота вычисляется как
Код:
cur_angle = (position.y - minimum.y) / (maximum.y - minimum.y) * angle;
поэтому для изначального цилиндоа все хорошо - он стоит ровно по Y.

Вопрос: а как согнуть обе части - верхнюю и нижнюю?

Спасибо
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Сентябрь 02, 2014, 16:07 »

Ну вот, наверное опять слишком сложно для детей ассистентсого подземелья Плачущий А бывает так резво щебечут напр что же там лучше git или svn? Ну ладно, пара вопросов совсем простых чтобы оживить интерес. Пусть у нас всего ОДИН изгиб. Тогда

1) Как базовая ф-ция (прототип выше) гнет трубу ?
2) Пусть у трубы 100 вертексов. Сколько раз будет вызвана базовая ф-ция?
Записан
Bepec
Гость
« Ответ #2 : Сентябрь 02, 2014, 16:28 »

Отвечать на вопрос "просто так" желания не возникает. Ну или вы отбили у присутствующих желание отвечать Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.07 секунд. Запросов: 22.