В этом примере показано, как отобразить путь снаряда в зависимости от времени с помощью 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');