MATLAB Function Reference | ![]() ![]() |
表示
streamparticles(vertices)
streamparticles(vertices,n)
streamparticles(...,'PropertyName
',PropertyValue,...)
streamparticles(line_handle,...)
h = streamparticles(...)
詳細
streamparticles(vertices)
は、ベクトル場のストリート粒子を描画します。ストリーム粒子は、通常、markers を使って表示され、ストリームラインの位置と速度を示すことができます。
vertices
は、(stream2
、または、stream3
で、あたかも作成されたような)2次元、または、3次元の頂点のセル配列です。
streamparticles(vertices,n)
は、
n
を使って、描画するストリーム粒子の数を決定します。ParticleAlignment
プロパティは、n
の解釈をどのようにするかをコントロールするものです。
ParticleAlignment
が、off
(デフォルト) に設定され、n
が 1
より大きい場合、適切な n
個の粒子が、ストリームライン頂点全体に渡り、等間隔に分布した型で描画されます。n
が、1
以下の場合、n
は、オリジナルのストリーム頂点を少なくする割合と解釈されます。たとえば、n
が 0.2
の場合、頂点の数は、近似的に 20% となります。
n
は、描画される粒子の数の上限を決定します。実際の粒子の数は、n
から引き出され、ほぼ、2のべき乗になります。
ParticleAlignment
が on
の場合、n
は、大部分の頂点をもつストリームライン上での粒子の数を決定します。そして、他のストリームラインの間隔にこの値を設定します。デフォルト値は、n = 1
です。 streamparticles(...,'
は、指定したプロパティ名とその値を使って、ストリーム粒子をコントロールします。指定していないプロパティは、デフォルト値を使います。MATLAB は、プロパティの名前に関して、大文字、小文字を区別しません。PropertyName
',PropertyValue,...)
ストリーム粒子プロパティ
ストリーム粒子のアニメーションを行う回数。デフォルトは、0
で、アニメーションは行われません。Inf
は、ユーザが ctrl-c を入力するまで、アニメーションを続けます。
FrameRate
- 秒単位のアニメーションフレーム数 [非負の整数]
このプロパティは、アニメーションに対して、秒単位のフレーム数を指定するものです。Inf
は、デフォルトで、できる限り速く描画します。アニメーションのスピードは、コンピュータのスピードにより制限を受けます。制限を受けるような場合、FrameRate
の値は、必ずしも達成できません。
ParticleAlignment
- ストリームラインを粒子の結合 [ on
| {off}
]
このプロパティを on
に設定して、個々のストリームラインの始点に粒子を描画します。このプロパティは、streamparticles
に、引数 n
(ストリーム粒子の数)の解釈をコントロールします。
ストリーム粒子は、ラインオブジェクトです。ストリーム粒子プロパティに加えて、 line オブジェクトプロパティ、たとえば、Marker
や EraseMode
のように設定します。streamparticles
は、つぎのラインプロパティがコールされたとき、設定されます。
Line プロパティ |
streamparticles で設定する値 |
EraseMode |
xor |
LineStyle |
none |
Marker |
o |
MarkerEdgeColor |
none |
MarkerFaceColor |
red |
プロパティ名と値を streamparticles
に設定することにより、これらのプロパティのいくつかを書きかえれます。たとえば、つぎのステートメントは、RGB 値を使って、MarkerFaceColor
を中間の灰色にします。
streamparticles(vertices,'MarkerFaceColor',[.5 .5 .5])
streamparticles(line_handle,...)
は、line_handle
で識別されるラインオブジェクトを使って、ストリーム粒子を描画します。
h = streamparticles(...)
は、作成するラインオブジェクトのハンドルベクトルを戻します。
例題
つぎの例題は、ストリームラインとストリーム粒子アニメーションを合わせたものです。関数 interpstreamspeed
は、ストリーム粒子がアニメーションの間に描画されるストリームラインに沿って、頂点を決定します。そのために、アニメーションのスピードをコントロールすることができます。Axes の DrawMode
プロパティを fast
に設定して、レンダリングを高速にすることができます。
load wind [sx sy sz] = meshgrid(80,20:1:55,5); verts = stream3(x,y,z,u,v,w,sx,sy,sz); sl = streamline(verts); iverts = interpstreamspeed(x,y,z,u,v,w,verts,.025); axis tight; view(30,30); daspect([1 1 .125]) camproj perspective; camva(8) set(gca,'DrawMode','fast') box on streamparticles(iverts,35,'animate',10,'ParticleAlignment','on')
つぎの例題は、z = 5
平面の中のストリームラインを使って、streamparticlesによるラインに沿っての流れをアニメーション化します。
load wind daspect([1 1 1]); view(2) [verts averts] = streamslice(x,y,z,u,v,w,[],[],[5]); sl = streamline([verts averts]); axis tight off; set(sl,'Visible','off') iverts = interpstreamspeed(x,y,z,u,v,w,verts,.05); set(gca,'DrawMode','fast','Position',[0 0 1 1]) set(gcf,'Color','black') streamparticles(iverts, 200, ... 'Animate',100,'FrameRate',40, ... 'MarkerSize',10,'MarkerFaceColor','yellow')
参考
isosurface
, isocaps
, smooth3
, subvolume
, reducevolume
, reducepatch
, isonormals
![]() | streamline | streamribbon | ![]() |