0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 26
|
|||||||||||
1 | |||||||||||
Разворот объекта вокруг нескольких точек в C++/DirectX03.10.2009, 19:51. Показов 2343. Ответов 1
Метки нет Все метки)
(
Возникла проблема.
Суть такова: некоторый объект (их много) необходимо 1. повернуть сперва вокруг свей оси, переместить в точку (x,y,z), 2. затем повернуть по оси y вокруг некой постоянно меняющейся точки (zep1.st_x, zep1.st_y, zep1.st_x) (поворачиваться будут все объекты скопом). п.1 реализовал. Дальше ничего не выходит. Реализация: Вызов ф-ции(один из многих): SetupMatrices(zep1.st_x+8,zep1.st_y,zep1.st_z+10 ,0,0,zep1.rot_right+90*D3DX_PI/180,zep1.rotat);
Сделал так, но толку никакого.
0
|
|
03.10.2009, 19:51 | |
Ответы с готовыми решениями:
1
DirectX вращение камеры вокруг центра Вращение объектов вокруг своей оси в DirectX Поворот bitmap вокруг своей оси DirectX 11 Transform.World вращает мир вокруг объекта или наоборот? (DirectX) |
![]() 1673 / 1045 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
04.10.2009, 11:54 | 2 |
Тебе надо разобраться с порядком применения преобразований и с тем, в какой системе координат они заданы. Возьмём, к примеру, пункт 1. Если ты хочешь (что наиболее вероятно), чтобы это был поворот вокруг эйлеровых углов (т.е., поворот вокруг оси X, потом вокруг УЖЕ ПОВЁРНУТОЙ в предыдущем шаге оси Y и потом вокруг опять же повёрнутой предыдущими шагами оси Z), то ты делаешь правильно. При этом СК, в которой задаются преобразования, как бы прилеплена к объекту. Если ты хочешь производить эти же повороты вокруг мировых осей, то надо перемножить матрицы в обратном порядке: Z, Y, X.
Далее, что такое поворот вокруг некоторой точки? Это 3 действия: перенос данной точки в (0, 0, 0), поворот и обратный перенос в ту же точку. Поскольку ты по идее строишь собственную матрицу world для каждого объекта, этот сомножитель будет просто повторяться для каждого из них. Ты даже можешь посчитать её один раз и потом просто домножать на неё матрицу world.
0
|
04.10.2009, 11:54 | |
04.10.2009, 11:54 | |
Помогаю со студенческими работами здесь
2
Как задать разворот объекта в градусах Разворот объекта по направлению вектора скорости
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |