Добрый день
Есть труба (модель цилиндра). Есть ф-ция вызывая которую для каждого вертексв мы получаем изгиб трубы (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.
Вопрос: а как согнуть обе части - верхнюю и нижнюю?
Спасибо