Main Content

streamparticles

绘制流粒子

    说明

    示例

    streamparticles(verts) 在向量场流线图的每个顶点上绘制流粒子。流粒子可以显示流线图的位置和速度。

    示例

    streamparticles(verts,n) 使用 n 来确定要绘制多少个流粒子。n 可以表示粒子的数量或流线图顶点的百分比。您可以将 ParticleAlignment 名称-值参量与此语法结合使用,以更改 streamparticles 使用 n 的方式。

    示例

    streamparticles(___,Name,Value) 通过使用一个或多个名称-值参量设置属性来修改流粒子动画和外观。例如,您可以使用 Marker 属性设置粒子的形状。需要在上述任一语法中的所有参量之后指定名称-值参量。有关属性列表,请参阅 Line 属性

    streamparticles(target,___) 使用目标对象创建流粒子图。如果目标对象是 Axes 对象,则 MATLAB® 在指定的坐标区中而不是当前坐标区 (gca) 中绘图。如果目标对象是 Line 对象,则更新线条属性以创建流粒子,而不是创建新 Line 对象。

    lineobj = streamparticles(___) 返回包含所有粒子顶点的 Line 对象。

    示例

    全部折叠

    创建两条流线图的顶点,指定为 15×2 矩阵中的 xy 坐标。将 streamparticles 的顶点输入定义为元胞数组,其中每个元素表示一条流线。

    x = linspace(0,2*pi,15);
    y1 = sin(x); 
    y2 = sin(x) + 1;
    
    s1 = [x;y1]';
    s2 = [x;y2]';
    verts = {s1,s2};

    在流线图的每个顶点上绘制粒子。

    streamparticles(verts);

    使用位置和速度矩阵定义一个向量场。使用 streamslice 生成向量场中流线图的顶点,并将顶点存储在 verts 中。

    [x,y] = meshgrid(-10:10);
    u = 2.*x.*y;
    v = y.^2 - x.^2;
    [verts,~] = streamslice(x,y,u,v);

    streamline 绘制流线图。然后,用 streamparticles 绘制 100 个粒子。默认情况下,粒子均匀分布在所有顶点上。

    streamline(verts);
    streamparticles(verts,100);

    对于同一个向量场,通过将 ParticleAlignment 属性设置为 "on",在具有最多顶点的流线图上均匀绘制五个粒子。streamparticles 函数使用该间距在其余流线图上绘制粒子。

    streamline(verts);
    streamparticles(verts,5,"ParticleAlignment","on");

    对于同一个向量场,将 5% 的流线图顶点绘制为粒子。

    streamline(verts);
    streamparticles(verts,0.05);

    创建向量场的顶点,并绘制其流线图和流粒子。通过分别设置 AnimateFrameRate 属性,以每秒 30 帧的速度为粒子设置五次迭代的动画。

    [x,y] = meshgrid(-10:10);
    u = 2.*x.*y;
    v = y.^2 - x.^2;
    [verts,~] = streamslice(x,y,u,v);
    
    streamline(verts);
    streamparticles(verts,100,"Animate",5,"FrameRate",30);

    创建向量场的顶点,并绘制其流线图和流粒子。通过设置 Marker 和 MarkerEdgeColor 属性,对粒子使用绿色星号标记。

    [x,y] = meshgrid(-10:10); 
    u = 2.*x.*y;
    v = y.^2 - x.^2;
    [verts,~] = streamslice(x,y,u,v);
    
    streamline(verts);
    streamparticles(verts,150,"Marker","*","MarkerEdgeColor",[0 0.5 0]);

    输入参数

    全部折叠

    流线图坐标数据,指定为元胞数组(由 stream2stream3streamslice 返回)。元胞数组的每个元素是定义一个流线图的二维或三维顶点的矩阵,其中每行表示一个粒子的坐标。

    流粒子的数量,指定为正值。

    • 如果 n 大于 1,则 streamparticles 绘制大约 n 个粒子。

    • 如果 n 小于或等于 1,则 streamparticles 将一定百分比的顶点绘制为粒子。例如,如果 n0.2,则 streamparticles 绘制大约 20% 的顶点。

    默认情况下,streamparticles 在所有流线图顶点上均匀绘制由 n 确定的粒子数。但是,如果将 ParticleAlignment 属性设置为 "on"streamparticles 会在顶点最多的流线图上均匀绘制粒子,然后将该粒子间距用于其他流线图。

    目标对象,指定为 AxesLine 对象。

    • Axes 对象 - streamparticles 在指定坐标区而不是当前坐标区中绘图。

    • Line 对象 - 更新线条属性以创建流粒子,而不是创建新 Line 对象。

    您可以在 streamparticles 图中显示图例,方法是创建一个 Line 对象,调用 legend,然后以该行作为目标对象调用 streamparticles

    名称-值参数

    将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

    示例: streamparticles(verts,MarkerFaceColor="blue") 为流粒子指定蓝色标记。

    在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

    示例: streamparticles(verts,"MarkerFaceColor","blue") 为流粒子指定蓝色标记。

    注意

    此处列出的线条属性只是可以更改粒子外观的部分属性。有关完整列表,请参阅 Line 属性

    动画迭代次数,指定为非负整数。默认情况下,Animate 的值为 0,这表示没有流粒子运动。如果值为 Inf,动画将继续,直到您按下 Ctrl+C

    每秒动画帧数,指定为非负整数。默认情况下,FrameRate 的值为 Inf,它会尽可能快地绘制动画,具体速度取决于运行 streamparticles 的计算机的限制。

    流线图上粒子的对齐,指定为 "off""on"

    • 如果 ParticleAlignment"off",则 n 确定在所有流线图顶点上均匀分布的粒子数。

    • 如果 ParticleAlignment"on",则 n 确定在顶点最多的流线图上均匀分布的粒子数。streamparticles 函数使用此间距在其余流线图上绘制粒子。

    标记符号,指定为下表中列出的值之一。默认情况下,粒子显示为圆形。如果标记符号没有填充面,例如 "*",则必须指定标记的边缘颜色。

    标记描述生成的标记
    "o"圆圈

    Sample of circle marker

    "+"加号

    Sample of plus sign marker

    "*"星号

    Sample of asterisk marker

    "."

    Sample of point marker

    "x"叉号

    Sample of cross marker

    "_"水平线条

    Sample of horizontal line marker

    "|"垂直线条

    Sample of vertical line marker

    "square"方形

    Sample of square marker

    "diamond"菱形

    Sample of diamond marker

    "^"上三角

    Sample of upward-pointing triangle marker

    "v"下三角

    Sample of downward-pointing triangle marker

    ">"右三角

    Sample of right-pointing triangle marker

    "<"左三角

    Sample of left-pointing triangle marker

    "pentagram"五角形

    Sample of pentagram marker

    "hexagram"六角形

    Sample of hexagram marker

    "none"无标记不适用

    标记轮廓颜色,指定为 "none"、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认情况下,没有标记轮廓颜色。

    RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。

    • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

    • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 "#FF8800""#ff8800""#F80""#f80" 是等效的。

    此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

    颜色名称短名称RGB 三元组十六进制颜色代码外观
    "red""r"[1 0 0]"#FF0000"

    Sample of the color red

    "green""g"[0 1 0]"#00FF00"

    Sample of the color green

    "blue""b"[0 0 1]"#0000FF"

    Sample of the color blue

    "cyan" "c"[0 1 1]"#00FFFF"

    Sample of the color cyan

    "magenta""m"[1 0 1]"#FF00FF"

    Sample of the color magenta

    "yellow""y"[1 1 0]"#FFFF00"

    Sample of the color yellow

    "black""k"[0 0 0]"#000000"

    Sample of the color black

    "white""w"[1 1 1]"#FFFFFF"

    Sample of the color white

    以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

    RGB 三元组十六进制颜色代码外观
    [0 0.4470 0.7410]"#0072BD"

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980]"#D95319"

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250]"#EDB120"

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560]"#7E2F8E"

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880]"#77AC30"

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330]"#4DBEEE"

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840]"#A2142F"

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

    标记填充颜色,指定为 "red""none"、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认情况下,标记填充颜色为红色。

    RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。

    • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

    • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 "#FF8800""#ff8800""#F80""#f80" 是等效的。

    此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

    颜色名称短名称RGB 三元组十六进制颜色代码外观
    "red""r"[1 0 0]"#FF0000"

    Sample of the color red

    "green""g"[0 1 0]"#00FF00"

    Sample of the color green

    "blue""b"[0 0 1]"#0000FF"

    Sample of the color blue

    "cyan" "c"[0 1 1]"#00FFFF"

    Sample of the color cyan

    "magenta""m"[1 0 1]"#FF00FF"

    Sample of the color magenta

    "yellow""y"[1 1 0]"#FFFF00"

    Sample of the color yellow

    "black""k"[0 0 0]"#000000"

    Sample of the color black

    "white""w"[1 1 1]"#FFFFFF"

    Sample of the color white

    以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

    RGB 三元组十六进制颜色代码外观
    [0 0.4470 0.7410]"#0072BD"

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980]"#D95319"

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250]"#EDB120"

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560]"#7E2F8E"

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880]"#77AC30"

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330]"#4DBEEE"

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840]"#A2142F"

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

    扩展功能

    版本历史记录

    在 R2006a 之前推出