Измените перевод узла и вращение
move(h,translation,rotation)
h.move(translation,rotation)
move(h,translation,rotation)
и h.move(translation,rotation)
установите новое положение и ориентацию для объекта узла h
Перевод
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
).