Измените перевод узла и вращение
move(h,translation,rotation)
h.move(translation,rotation)
move(h,translation,rotation)
и h.move(translation,rotation)
установите новое положение и ориентацию для объекта узла h
. translation
1 3 матрица в космическом теле система координат x-y-z
или другая система координат. В последнем случае можно использовать функцию CoordTransformFcn
, чтобы переместить его в космическое тело. Заданная космическая система координат тела задана относительно экрана как x
- оставленный, y
- в, z
- вниз.
rotation
1 3 матрица в радианах, который задает вращения вокруг правой последовательности x-y-z
осей координат. Порядком приложения вращения является z-y-x
(r-q-p
). Эта функция использует CoordTransformFcn
, чтобы применить перевод и вращение от входной системы координат до космического тела. Функция затем перемещает перевод и вращение от космического тела до VRML координаты x-y-z
. Заданная система координат VRML задана относительно экрана как x
- право, y
- z
-.
Двигайте телом Lynx. Этот пример использует функцию Simulink® 3D Animation™ vrnode/getfield
, чтобы получить перевод и вращение. Эти координаты - используемые в программном обеспечении Simulink 3D Animation.
h = Aero.VirtualRealityAnimation; h.VRWorldFilename = [matlabroot,'/toolbox/aero/astdemos/asttkoff.wrl']; copyfile(h.VRWorldFilename,[tempdir,'asttkoff.wrl'],'f'); h.VRWorldFilename = [tempdir,'asttkoff.wrl']; h.initialize(); newtrans = getfield(h.Nodes{4}.VRNode,'translation') + 1.0; newrot = getfield(h.Nodes{4}.VRNode,'rotation') + [.2 0.01 0.01 0.01]; h.Nodes{4}.move(newtrans,newrot);
Эта функция не может получить положение узла в космических координатах тела; это должно использовать CoordTransformFcn
, чтобы сделать так.
Эта функция не может установить положение точки зрения или ориентацию (см. addViewpoint
).