Измените перемещение и поворот узла
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
-left, y
-in, z
-down.
rotation
- матрица 1 на 3, в радианах, которая задает повороты вокруг правой x-y-z
последовательность координатных осей. Порядок применения вращения z-y-x
(r-q-p
). Эта функция использует CoordTransformFcn
применить перемещение и поворот от входной системы координат к аэрокосмическому телу. Затем функция перемещает перемещение и вращение из аэрокосмического тела в VRML x-y-z
координаты. Заданная система координат VRML определяется относительно экрана следующим x
-правый, y
-up, z
из.
Переместите тело Линкс. Этот пример использует 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
).