Sympy: Как express относительное местоположение / положение только с одним набором базовых векторов одной системы координат или кадра? - PullRequest
0 голосов
/ 09 мая 2020

Я ищу Sympy-way для express относительного местоположения / положения только с одним набором базовых векторов одной системы координат или кадра.

В следующем примере создаются четыре системы координат с разными размещения и ориентации:

from sympy.vector import CoordSys3D
from sympy import symbols


x0, y0, z0 = symbols('x0 y0 z0')
x1, y1, z1 = symbols('x1 y1 z1')
x2, y2, z2 = symbols('x2 y2 z2')
phi, theta, psi = symbols('phi theta psi')
q00, q10, q20, q30 = symbols('q00 q10 q20 q30')
q01, q11, q21, q31 = symbols('q01 q11 q21 q31')

N = CoordSys3D('N')
B = N.orient_new_body('B', phi, theta, psi, '123', location=(x0*N.i + y0*N.j + z0*N.k))
C = N.orient_new_quaternion('C', q00, q10, q20, q30, location=(x1*N.i + y1*N.j + z1*N.k))
D = C.orient_new_quaternion('D', q01, q11, q21, q31, location=(x2*C.i + y2*C.j + z2*C.k))

D.position_wrt(B)

enter image description here

Видно, что результирующий вектор содержит базовые векторы N и C. Но я бы предпочел, чтобы они выражались базовыми векторами D.

Как я могу это сделать? Есть ли уже существующий метод для этого?

...