Этот пример показывает, как отобразить путь снаряда как функция времени с помощью 3D графика полей градиента.
Покажите путь следующего снаряда с помощью констант для скорости и ускорения, 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
, таким образом, анимация запускается быстрее.
Функция 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');