VTK Python, вращение вектора вокруг точки - PullRequest
0 голосов
/ 14 марта 2019

Я использую 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

...