В этом примере показано, как отобразить путь снаряда как функцию времени с помощью трехмерного графика полей градиента.
Покажите путь следующего снаряда, используя константы для скорости и ускорения, vz
и a
. Вычислите z
поскольку высота по времени изменяется от 0 до 1.
vz = 10; % velocity constant a = -32; % acceleration constant t = 0:.1:1; z = vz*t + 1/2*a*t.^2;
Вычислим положение в направлении X и направлении Y.
vx = 2; x = vx*t; vy = 3; y = vy*t;
Вычислите компоненты векторов скорости и отобразите векторы с помощью 3-D графиков полей градиента. Измените точку зрения осей на [70,18]
.
u = gradient(x); v = gradient(y); w = gradient(z); scale = 0; figure quiver3(x,y,z,u,v,w,scale) view([70,18])
Анимация о потоке частиц полезна для визуализации направления потока и скорости векторного поля. «Частицы» (представленные любым из маркеров линии) прослеживают поток вдоль конкретной линии потока. Скорость каждой частицы в анимации пропорциональна величине векторного поля в любой заданной точке вдоль линии потока.
Этот пример определяет область объема для построения путем определения соответствующих начальных точек. В этом случае графики потока начинаются с x = 100 и y охватывает от 20 до 50 в плоскости z = 5, что не является полными объемными границами.
load wind [sx sy sz] = meshgrid(100,20:2:50,5);
Этот пример использует потоковые линии (stream3
, streamline
), чтобы проследить путь анимированных частиц, что добавляет визуальный контекст для анимации.
verts = stream3(x,y,z,u,v,w,sx,sy,sz); sl = streamline(verts);
В то время как все линии потока начинаются в плоскости z = 5, значения некоторых спиралей снижаются до более низких значений. Следующие настройки обеспечивают четкое представление анимации:
Точка зрения (view
) выбранный показывает как плоскость, содержащую большинство струйных линий, так и спираль.
Выбор соотношения сторон данных (daspect
) [2 2 0.125]
обеспечивает большее разрешение в z-направлении, чтобы сделать частицы потока легче видимыми по спирали.
Установите пределы осей, чтобы они совпадали с пределами данных (axis
) и нарисуйте коробку осей (box
).
view(-10.5,18) daspect([2 2 0.125]) axis tight; set(gca,'BoxStyle','full','Box','on')
Определите вершины вдоль линии потока, где будет нарисована частица. interpstreamspeed
функция возвращает эти данные на основе вершин линии потока и скорости вектора данных. Этот пример масштабирует скорости на 0,05, чтобы увеличить количество интерполированных вершин.
Установите оси SortMethod
свойство к childorder
поэтому анимация выполняется быстрее.
The streamparticles
функция устанавливает следующие свойства:
Animate
на 10
чтобы запустить анимацию 10 раз.
ParticleAlignment
на on
чтобы начать все следы частиц вместе.
MarkerEdgeColor
на none
чтобы нарисовать только грань кругового маркера. Анимация обычно выполняется быстрее, когда ребра маркера не рисуются.
MarkerFaceColor
на red
.
Marker
на o
, который рисует круговой маркер. Можно использовать и другие маркеры линий.
iverts = interpstreamspeed(x,y,z,u,v,w,verts,0.01); set(gca,'SortMethod','childorder'); streamparticles(iverts,15,... 'Animate',10,... 'ParticleAlignment','on',... 'MarkerEdgeColor','none',... 'MarkerFaceColor','red',... 'Marker','o');