Я использую VTK и Python для проекта, связанного с моей учебой.
Мне даны следующие точка centerOfRotation и градусы ориентации, а также вектор [1, 0, 0]. Теперь я хочу повернуть вектор так, чтобы он «указывал» в направлении, заданном degrres, а затем перевести его в точку p.
centerOfRotation = [314.848717879, 283.085686693, 423.900139245]
degrees = [-7.93947167694, -0, 171.098864823]
vector = [1, 0, 0]
transform = vtk.vtkTransform()
transform.Identity()
transform.PreMultiply()
transform.Translate(centerOfRotation)
transform.RotateZ(degrees[2])
transform.RotateX(degrees[0])
transform.RotateY(degrees[1])
transform.Translate(-centerOfRotation[0], -centerOfRotation[1], -centerOfRotation[2])
newPos = [0]*3
transform.TransformPoint(vector, newPos)
centerOfRotation и градусы извлекаются из другой программы, в другой программе вторая точка (newPos) должна быть ниже первой точки (centerOfRotation). Но с кодом, приведенным выше, вторая точка расположена над центром вращения.
Я надеюсь, что кто-то может указать мне правильное направление. Большое спасибо!
Кстати: другая программа сообщает мне другую информацию: YSymmetry = 1. Хотя я не совсем уверен, что это значит.
Примечание: я не учусь на математике и не разбираюсь в компьютерах, и мои математические навыки немного устарели. Сейчас у меня нет времени изучать математику, поэтому, если бы вы могли указать мне правильное направление «кодирования», я был бы признателен: D