15.2.2 Three-Dimensional Plots

Last-modified: 2025-03-16 (日) 18:08:25

15.2.2 3次元プロット

この関数はmeshメッシュ表面プロットを生成します。例えば、

tx = ty = linspace (-8, 8, 41)';
[xx, yy] = meshgrid (tx, ty);
r = sqrt (xx .^ 2 + yy .^ 2) + eps;
tz = sin (r) ./ r;
mesh (tx, ty, tz);
xlabel ("tx");
ylabel ("ty");
zlabel ("tz");
title ("3-D Sombrero plot");

は、図 15.5に示すようなおなじみの「ソンブレロ」プロットを生成します。関数を使用して、meshgridZ データのプロットに使用する X 座標と Y 座標の行列を作成していることに注意してください。ndgrid関数は に似ていますmeshgridが、N 次元行列に対して機能します。
mesh.png
Figure 15.5: Mesh plot.

このmeshc関数は に似ていますmeshが、表面の等高線のプロットも生成します。

このplot3関数は、面を形成する必要なしに任意の3次元データを表示します。例えば、

 t = 0:0.1:10*pi;
 r = linspace (0, 1, numel (t));
 z = linspace (0, 1, numel (t));
 plot3 (r.*sin (t), r.*cos (t), z);
 xlabel ("r.*sin (t)");
 ylabel ("r.*cos (t)");
 zlabel ("z");
 title ("plot3 display of 3-D helix");

displays the spiral in three dimensions shown in Figure 15.6.

plot3.png
Figure 15.6: Three-dimensional spiral.

図15.6に示すように、螺旋を3次元で表示します。

: mesh (x, y, z)
: mesh (z)
: mesh (…, c)
: mesh (…, prop, val, …)
: mesh (hax, …)
: h = mesh (…)
3D ワイヤフレーム メッシュをプロットします

ワイヤーフレーム メッシュは、長方形を使用してプロットされます。長方形の頂点 [ x , ymeshgrid ] は通常、 xy 平面の 2 次元長方形領域上の の出力です。 z は、各頂点の平面からの高さを決定します。z行列が 1 つだけ指定されている場合は、メッシュ グリッド上にプロットされます 。したがって、zの列は異なるx値に対応し、zの行は異なるy値に対応します。 x = 1:columns (z), y = 1:rows (z)

メッシュの色は、現在のカラーマップの範囲に合わせてzcaxis値を線形にスケーリングすることによって計算されます。カラーマップを使用したり変更したりして外観を制御します。

オプションで、カラーマトリックスcを指定することにより、メッシュの色をzとは独立して指定できます。

すべてのプロパティ/値のペアは、基になるサーフェス オブジェクトに直接渡されます。プロパティの完全なリストは、 Surface Propertiesに記載されています。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

オプションの戻り値hは、作成されたサーフェス オブジェクトへのグラフィックス ハンドルです。
See also: ezmesh, meshc, meshz, trimesh, contour, surf, surface, meshgrid, hidden, shading, colormap, caxis.

: meshc (x, y, z)
: meshc (z)
: meshc (…, c)
: meshc (…, prop, val, …)
: meshc (hax, …)
: h = meshc (…)
基礎となる等高線を含む 3D ワイヤフレーム メッシュをプロットします。

ワイヤーフレーム メッシュは、長方形を使用してプロットされます。長方形の頂点 [ x , ymeshgrid ] は通常、 xy 平面の 2 次元長方形領域上の の出力です。 z は、各頂点の平面からの高さを決定します。z行列が 1 つだけ指定されている場合は、メッシュ グリッド上にプロットされます 。したがって、zの列は異なるx値に対応し、zの行は異なるy値に対応します。 x = 1:columns (z), y = 1:rows (z)

メッシュの色は、現在のカラーマップの範囲に合わせてzcaxis値を線形にスケーリングすることによって計算されます。カラーマップを使用したり変更したりして外観を制御します。

オプションで、カラー マトリックスcを指定することにより、メッシュの色をzとは独立して指定できます。

すべてのプロパティ/値のペアは、基になるサーフェス オブジェクトに直接渡されます。プロパティの完全なリストは、 Surface Propertiesに記載されています。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

オプションの戻り値hは、作成されたサーフェス オブジェクトと作成された等高線プロットへのグラフィックス ハンドルを持つ 2 要素のベクトルです。

See also: ezmeshc, mesh, meshz, contour, surfc, surface, meshgrid, hidden, shading, colormap, caxis.

: meshz (x, y, z)
: meshz (z)
: meshz (…, c)
: meshz (…, prop, val, …)
: meshz (hax, …)
: h = meshz (…)
周囲のカーテンを含む 3D ワイヤーフレーム メッシュをプロットします。
ワイヤーフレーム メッシュは、長方形を使用してプロットされます。長方形の頂点 [ x , ymeshgrid ] は通常、 xy 平面の 2 次元長方形領域上の の出力です。 z は、各頂点の平面からの高さを決定します。z行列が 1 つだけ指定されている場合は、メッシュ グリッド上にプロットされます 。したがって、zの列は異なるx値に対応し、zの行は異なるy値に対応します。 x = 1:columns (z), y = 1:rows (z)

メッシュの色は、現在のカラーマップの範囲に合わせてzcaxis値を線形にスケーリングすることによって計算されます。カラーマップを使用したり変更したりして外観を制御します。

オプションで、カラー マトリックスcを指定することにより、メッシュの色をzとは独立して指定できます。

すべてのプロパティ/値のペアは、基になるサーフェス オブジェクトに直接渡されます。プロパティの完全なリストは、 Surface Propertiesに記載されています。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

オプションの戻り値hは、作成されたサーフェス オブジェクトへのグラフィックス ハンドルです。

See also: mesh, meshc, contour, surf, surface, waterfall, meshgrid, hidden, shading, colormap, caxis.

: hidden
: hidden on
: hidden off
: mode = hidden (…)
メッシュの隠線除去を制御します。

引数なしで呼び出されると、隠線除去の状態が切り替わります。

いずれかのモードで呼び出されると"on"、"off"状態がそれに応じて設定されます。

オプションの出力引数モードは現在の状態です。

隠線除去は、メッシュ プロットの背後にあるグラフィック オブジェクトのうち、どのオブジェクトを表示するかを決定します。デフォルトでは、メッシュは不透明になり、メッシュの背後にある線は表示されません。隠線除去をオフにすると、メッシュのグリッド ラインは不透明のままですが、メッシュの背後にあるオブジェクトはメッシュの面 (開口部) を通して見ることができます。

See also: mesh, meshc, meshz, ezmesh, ezmeshc, trimesh, waterfall.

: surf (x, y, z)
: surf (z)
: surf (…, c)
: surf (…, prop, val, …)
: surf (hax, …)
: h = surf (…)
3D サーフェス メッシュをプロットします。

表面メッシュは、影付きの長方形を使用してプロットされます。長方形の頂点 [ x , y ] は、通常、meshgridxy 平面の 2 次元長方形領域上の の出力です。 z は、各頂点の平面からの高さを決定します。z行列が 1 つだけ指定されている場合は、メッシュグリッド上にプロットされます 。したがって、zの列は異なるx値に対応し、zの行は異なるy値に対応します。 x = 1:columns (z), y = 1:rows (z)

表面の色は、現在のカラーマップの範囲に合わせてzcaxis値を線形にスケーリングすることによって計算されます。カラーマップを使用したり変更したりして外観を制御します。

オプションとして、カラーマトリックスcを指定することにより、表面の色を zとは独立して指定できます。

すべてのプロパティ/値のペアは、基になるサーフェス オブジェクトに直接渡されます。プロパティの完全なリストは、 Surface Propertiesに記載されています。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

オプションの戻り値hは、作成されたサーフェス オブジェクトへのグラフィックス ハンドルです。

注: サーフェスの正確な外観は、 コマンドを使用するか 、またはサーフェス オブジェクトのプロパティを制御する shadingを使用して制御できます。set

See also: ezsurf, surfc, surfl, surfnorm, trisurf, contour, mesh, surface, meshgrid, hidden, shading, colormap, caxis.

: surfc (x, y, z)
: surfc (z)
: surfc (…, c)
: surfc (…, prop, val, …)
: surfc (hax, …)
: h = surfc (…)
等高線を基礎として 3D サーフェス メッシュをプロットします。

表面メッシュは、影付きの長方形を使用してプロットされます。長方形の頂点 [ x , y ] は、通常、meshgridxy 平面の 2 次元長方形領域上の の出力です。 z は、各頂点の平面からの高さを決定します。z行列が 1 つだけ指定されている場合は、メッシュグリッド上にプロットされます 。したがって、zの列は異なるx値に対応し、zの行は異なるy値に対応します。 x = 1:columns (z), y = 1:rows (z)

表面の色は、現在のカラーマップの範囲に合わせてzcaxis値を線形にスケーリングすることによって計算されます。カラーマップを使用したり変更したりして外観を制御します。

オプションとして、カラーマトリックスcを指定することにより、表面の色を zとは独立して指定できます。

すべてのプロパティ/値のペアは、基になるサーフェス オブジェクトに直接渡されます。プロパティの完全なリストは、 Surface Propertiesに記載されています。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

オプションの戻り値hは、作成されたサーフェス オブジェクトへのグラフィックス ハンドルです。

注: サーフェスの正確な外観は、 コマンドを使用するか 、またはサーフェス オブジェクトのプロパティを制御する shadingを使用して制御できます。set

See also: ezsurfc, surf, surfl, surfnorm, trisurf, contour, mesh, surface, meshgrid, hidden, shading, colormap, caxis.

: surfl (z)
: surfl (x, y, z)
: surfl (…, lsrc)
: surfl (x, y, z, lsrc, P)
: surfl (…, "cdata")
: surfl (…, "light")
: surfl (hax, …)
: h = surfl (…)
さまざまな照明モデルに基づくシェーディングを使用して 3D サーフェスをプロットします。

表面メッシュは、影付きの長方形を使用してプロットされます。長方形の頂点 [ x , y ] は、通常、meshgridxy 平面の 2 次元長方形領域上の の出力です。 z は、各頂点の平面からの高さを決定します。z行列が 1 つだけ指定されている場合は、メッシュグリッド上にプロットされます 。したがって、zの列は異なるx値に対応し、zの行は異なるy値に対応します。 x = 1:columns (z), y = 1:rows (z)

デフォルトの照明モードでは"cdata"、サーフェス オブジェクトの cdata プロパティを変更して、照明が当てられたサーフェスの印象を与えます。

代替モードでは、"light"表面を照らすライト オブジェクトが作成されます。

光源の位置は、lsrcを使用して指定できます。lsrc は、度単位の 2 要素ベクトル [方位角、仰角]、または 3 要素ベクトル [lx、ly、lz] になります。デフォルト値は、現在のビューに対して反時計回りに 45 度回転します。

表面の材料特性は、4要素ベクトルP = [ AM D SP exp ] を使用して指定できます。デフォルトは p = [0.55 0.6 0.4 10] です。

"AM" strength of ambient light
"D" strength of diffuse reflection
"SP" strength of specular reflection
"EXP" specular exponent

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

オプションの戻り値hは、作成されたサーフェス オブジェクトへのグラフィックス ハンドルです。

例:

colormap (bone (64));
surfl (peaks);
shading interp;

See also: diffuse, specular, surf, shading, colormap, caxis.

: surfnorm (x, y, z)
: surfnorm (z)
: surfnorm (…, prop, val, …)
: surfnorm (hax, …)
: [Nx, Ny, Nz] = surfnorm (…)
メッシュグリッド化されたサーフェスに垂直なベクトルを見つけます。

xとyがベクトルの場合、典型的な頂点は ( x (j), y (i), z (i,j)) です。したがって、 zの列は異なるx値に対応し、zの行は異なる y値に対応します。入力zが1 つだけ与えられた場合、 x は、 yは とみなされます。 1:columns (z)1:rows (z)

戻り引数が要求されていない場合は、表面の法線ベクトルを含む表面プロットがプロットされます。

任意のプロパティ/値の入力ペアがサーフェス オブジェクトに割り当てられます。プロパティの完全なリストは、Surface Propertiesに記載されています。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

出力引数が要求された場合、法線ベクトルの成分はNx、Ny、Nzに返され、プロットは作成されません。法線ベクトルは正規化されていません(大きさ!= 1)。正規化するには、

len = sqrt (nx.^2 + ny.^2 + nz.^2);
nx ./= len;  ny ./= len;  nz ./= len;

surfnormの使用例は

surfnorm (peaks (25));

アルゴリズム: 法線ベクトルは、メッシュグリッド内の各四辺形面の対角線の外積を取って、各面の中心の法線ベクトルを見つけることによって計算されます。次に、各メッシュグリッド ポイントについて、最も近い 4 つの法線ベクトルの平均が計算され、メッシュグリッド ポイントでの表面の最終的な法線が取得されます。

サーフェス オブジェクトの場合、"VertexNormals"プロパティには同等の情報が含まれますが、サーフェスの境界付近では異なる補間方式によってわずかに異なる値が生成される可能性があります。

See also: isonormals, quiver3, surf, meshgrid.

: fv = isosurface (v, isoval)
: fv = isosurface (v)
: fv = isosurface (x, y, z, v, isoval)
: fv = isosurface (x, y, z, v)
: fvc = isosurface (…, col)
: fv = isosurface (…, "noshare")
: fv = isosurface (…, "verbose")
: [f, v] = isosurface (…)
: [f, v, c] = isosurface (…)
: isosurface (…)
3D ボリューム データの等値面を計算します。

等値面は同じ値を持つ点を結び、等高線図に似ていますが、3 次元です。

入力引数vは、ボリューム上でサンプリングされたデータを含む 3 次元配列です。

入力isoval は、等値面の値を指定するスカラーです。isovalが省略されているか空の場合、等値面の「適切な」値はvから決定されます。

単一の出力引数で呼び出されると、点で計算された 面 と頂点 のフィールドを含むisosurface構造体配列fvを返します。出力fv は、関数への入力として直接使用できます。 [x, y, z] = meshgrid (1:l, 1:m, 1:n)[l, m, n] = size (v)patch

追加の入力引数x、y、zがv と同じサイズの 3 次元配列、またはvの次元に対応する長さのベクトルとして呼び出された場合、指定されたポイントでボリューム データが取得されます。x、y、または z1:nが空の場合、グリッドはそれぞれの方向のインデックス ( ) に対応します( を参照meshgrid)。

オプションの入力引数col は、 vと同じサイズの 3 次元配列であり、等値面の色付けを指定します。色データは、必要に応じて、isoval と一致するように補間されます。この場合、出力構造体配列には、追加のフィールド facevertexcdataがあります。

文字列入力引数が指定された場合"noshare"、異なる面の頂点が複数回返されることがあります。デフォルトの動作では、隣接する面で共有される頂点が削除されます。

文字列入力引数はMATLAB"verbose"互換性のためにサポートされています が、効果はありません。

文字列引数は他の引数の後に渡す必要があります。

2 つまたは 3 つの出力引数を指定して呼び出された場合は、面f、頂点v、および色データcに関する情報を、単一の構造体配列ではなく、個別の配列として返します。

出力引数なしで呼び出された場合、等値面ジオメトリがpatchコマンドで直接プロットされ、ライト オブジェクトがまだ存在しない場合は軸に追加されます。

例えば、

[x, y, z] = meshgrid (1:5, 1:5, 1:5);
v = rand (5, 5, 5);
isosurface (x, y, z, v, .5);

グラフィック ウィンドウにランダムな等値面ジオメトリを直接描画します。

異なる追加の色付けが施された等値面ジオメトリの例:

N = 15;    # Increase number of vertices in each direction
iso = .4;  # Change isovalue to .1 to display a sphere
lin = linspace (0, 2, N);
[x, y, z] = meshgrid (lin, lin, lin);
v = abs ((x-.5).^2 + (y-.5).^2 + (z-.5).^2);
figure ();
subplot (2,2,1); view (-38, 20);
[f, vert] = isosurface (x, y, z, v, iso);
p = patch ("Faces", f, "Vertices", vert, "EdgeColor", "none");
pbaspect ([1 1 1]);
isonormals (x, y, z, v, p)
set (p, "FaceColor", "green", "FaceLighting", "gouraud");
light ("Position", [1 1 5]);
subplot (2,2,2); view (-38, 20);
p = patch ("Faces", f, "Vertices", vert, "EdgeColor", "blue");
pbaspect ([1 1 1]);
isonormals (x, y, z, v, p)
set (p, "FaceColor", "none", "EdgeLighting", "gouraud");
light ("Position", [1 1 5]);
subplot (2,2,3); view (-38, 20);
[f, vert, c] = isosurface (x, y, z, v, iso, y);
p = patch ("Faces", f, "Vertices", vert, "FaceVertexCData", c, ...
          "FaceColor", "interp", "EdgeColor", "none");
pbaspect ([1 1 1]);
isonormals (x, y, z, v, p)
set (p, "FaceLighting", "gouraud");
light ("Position", [1 1 5]);
subplot (2,2,4); view (-38, 20);
p = patch ("Faces", f, "Vertices", vert, "FaceVertexCData", c, ...
          "FaceColor", "interp", "EdgeColor", "blue");
pbaspect ([1 1 1]);
isonormals (x, y, z, v, p)
set (p, "FaceLighting", "gouraud");
light ("Position", [1 1 5]);

See also: isonormals, isocolors, isocaps, smooth3, reducevolume, reducepatch, patch.

: vn = isonormals (val, vert)
: vn = isonormals (val, hp)
: vn = isonormals (x, y, z, val, vert)
: vn = isonormals (x, y, z, val, hp)
: vn = isonormals (…, "negate")
: isonormals (val, hp)
: isonormals (x, y, z, val, hp)
: isonormals (…, "negate")
等値面の法線を計算します。

頂点法線vn は、等値面ジオメトリのデータを含む3 次元配列val (サイズ: lxmxn) の勾配から計算されます。法線はvalの小さい値を指します。

1 つの出力引数vnで呼び出され、2 番目の入力引数 vert が等値面の頂点を保持する場合、法線vnは、で指定されたグリッド上の 頂点vert[x, y, z] = meshgrid (1:l, 1:m, 1:n)で計算されます。出力引数 vn はvertと同じサイズであり、"VertexNormals"対応するパッチのプロパティ を設定するために使用できます 。

valと同じサイズの 3 次元配列である追加の入力引数x、y、zを指定して呼び出された場合、ボリューム データはこれらのポイントで取得されます。頂点データ vertの代わりに、パッチ ハンドルhp を関数に渡すことができます。

最後の入力引数が文字列 の場合"negate"、等値面ジオメトリの逆ベクトル法線(つまり、valの大きい値を指す)を計算します。

出力引数が指定されていない場合は、パッチ ハンドルhp"VertexNormals"に関連付けられたパッチのプロパティが直接変更されます。

See also: isosurface, isocolors, smooth3.

: fvc = isocaps (v, isoval)
: fvc = isocaps (v)
: fvc = isocaps (x, y, z, v, isoval)
: fvc = isocaps (x, y, z, v)
: fvc = isocaps (…, which_caps)
: fvc = isocaps (…, which_plane)
: fvc = isocaps (…, "verbose")
: [faces, vertices, fvcdata] = isocaps (…)
: isocaps (…)
3D データの等値面のエンドキャップを作成します。

この関数は、等値面の開いた端にキャップを配置します。

入力引数vは、ボリューム上でサンプリングされたデータを含む 3 次元配列です。

入力isoval は、等値面の値を指定するスカラーです。isovalが省略されているか空の場合、等値面の「適切な」値はvから決定されます。

単一の出力引数で呼び出されると、フィールド、、を持つisocaps構造体配列fvcを返します。結果は の 点で計算されます。出力fvc は、関数への入力として直接使用できます。 facesverticesfacevertexcdata[x, y, z] = meshgrid (1:l, 1:m, 1:n)[l, m, n] = size (v)patch

追加の入力引数x、y、zがv と同じサイズの 3 次元配列、またはvの次元に対応する長さのベクトルとして呼び出された場合、指定されたポイントでボリューム データが取得されます。x、y、または z1:nが空の場合、グリッドはそれぞれの方向のインデックス ( ) に対応します( を参照meshgrid)。

オプション パラメータwhich_caps には、データの囲み方を定義する次のいずれかの文字列値を指定できます。

"above"、"a"(デフォルト)
isovalの上のデータを囲むエンドキャップ用。

"below"、"b"
isovalの下のデータを囲むエンドキャップ用。

オプション パラメータwhich_plane には、どのエンド キャップを描画するかを定義する次の文字列値のいずれかを指定できます。

"all"(デフォルト)
すべてのエンドキャップ用。

"xmin"
データの下部 x 平面のエンドキャップ用。

"xmax"
データの上部 x 平面のエンドキャップ用。

"ymin"
データの下部 y 平面のエンドキャップ用。

"ymax"
データの上部 y 平面のエンドキャップ用。

"zmin"
データの下部 Z 平面のエンドキャップ用。

"zmax"
データの上部 Z 平面のエンドキャップ用。

文字列入力引数はMATLAB"verbose"互換性のためにサポートされています が、効果はありません。

2 つまたは 3 つの出力引数を指定して呼び出された場合、面faces、頂点vertices、およびカラー データ facevertexcdataのデータは、 単一の構造体ではなく、別々の配列で返されます。

出力引数なしで呼び出された場合、エンドキャップはpatchコマンドによって現在の図に直接描画されます。
See also: isosurface, isonormals, patch.

: cdat = isocolors (c, v)
: cdat = isocolors (x, y, z, c, v)
: cdat = isocolors (x, y, z, r, g, b, v)
: cdat = isocolors (r, g, b, v)
: cdat = isocolors (…, hp)
: isocolors (…, hp)
等値面の色を計算します。

出力引数を 1 つ指定して呼び出され、最初の入力引数c が インデックス付きのカラー値を含む 3 次元配列であり、2 番目の入力引数v が等値面ジオメトリの頂点である場合、計算されたポイントにおけるジオメトリのカラー データ情報を含む行列cdat[x, y, z] = meshgrid (1:l, 1:m, 1:n)を返します。出力引数cdat は"FaceVertexCData"、等値面パッチ オブジェクトのプロパティを 手動で設定するために使用できます 。

cと同じサイズの 3 次元配列である追加の入力引数x、y、zを指定して呼び出されると、指定されたポイントでカラー データが取得されます。

インデックス付きカラーデータcの代わりに、 RGB 値r、g、bisocolorsを使用して呼び出すこともできます。入力引数x、 y、zが指定されていない場合は、計算された値が使用されます。 meshgrid

オプションとして、パッチ ハンドルhp をすべての関数呼び出しバリエーションの最後の入力引数として指定することができ、頂点データは等値面パッチ オブジェクトから抽出されます。最後に、出力引数が指定されていない場合は、パッチ ハンドルhpによって指定されたパッチの色が変更されます。

See also: isosurface, isonormals.

: smoothed_data = smooth3 (data)
: smoothed_data = smooth3 (data, method)
: smoothed_data = smooth3 (data, method, sz)
: smoothed_data = smooth3 (data, method, sz, std_dev)
3次元行列データの滑らかな値。

この関数は、例えば、 等値面を計算する前にデータ内のノイズの影響を軽減するために使用できます。

data は非シングルトンの 3 次元行列である必要があります。出力の Smoothed_dataは、 dataと同じサイズの行列です。

オプションの入力方法により、スムージング処理に使用する畳み込みカーネルが決まります。可能な選択肢は次のとおりです。

"box"、"b"(デフォルト)
鋭いエッジを持つ畳み込みカーネル。

"gaussian"、"g"
非相関三変量正規分布関数によって表される畳み込みカーネル。

szは、x、y、z 方向の畳み込みカーネルのサイズを指定する 3 要素のベクトル、またはスカラーです。スカラーの場合、3 つの次元すべてに同じサイズが使用されます ( )。デフォルト値は 3 です。 [sz, sz, sz]

methodの場合、"gaussian"オプションの入力std_dev は 、三変量正規分布関数の標準偏差を定義します。std_dev は、x、y、z 方向のガウス畳み込みカーネルの標準偏差を指定する 3 要素のベクトル、またはスカラーです。スカラーの場合、3 つの次元すべてに同じ値が使用されます。デフォルト値は 0.65 です。

See also: isosurface, isonormals, patch.

: [nx, ny, nz, nv] = reducevolume (v, r)
: [nx, ny, nz, nv] = reducevolume (x, y, z, v, r)
: nv = reducevolume (…)
rの値に応じて、 vのデータセットのボリュームを削減します。

vは最初の 3 次元が非シングルトンである行列です。

r は、x、y、z 方向の削減係数を表す 3 つの要素のベクトル、またはスカラーのいずれかになります。スカラーの場合は、3 つの次元すべてで同じ削減係数が使用されます。

reducevolumeそれぞれの次元で r番目の要素のみを取得することにより、vの要素数を減らします。

オプションで、x、y、zを指定してvの座標セットを表すことができます。これらはvと同じサイズの行列か、 vの次元に応じたサイズのベクトルのいずれかになります。後者の場合は行列に展開されます (を参照meshgrid)。

reducevolumeが 2 つの引数で呼び出された場合、 x、y、z はvのそれぞれのインデックスと一致すると想定されます。

縮小された行列はnvに返されます。

オプションで、縮小された座標セットがそれぞれnx、 ny、nzに返されます。

例:

v = reshape (1:6*8*4, [6 8 4]);
nv = reducevolume (v, [4 3 2]);
v = reshape (1:6*8*4, [6 8 4]);
x = 1:3:24;  y = -14:5:11;  z = linspace (16, 18, 4);
[nx, ny, nz, nv] = reducevolume (x, y, z, v, [4 3 2]);

See also: isosurface, isonormals.

: reduced_fv = reducepatch (fv)
: reduced_fv = reducepatch (faces, vertices)
: reduced_fv = reducepatch (patch_handle)
: reducepatch (patch_handle)
: reduced_fv = reducepatch (…, reduction_factor)
: reduced_fv = reducepatch (…, "fast")
: reduced_fv = reducepatch (…, "verbose")
: [reduced_faces, reduces_vertices] = reducepatch (…)
パッチの全体的な形状を維持しながら、パッチ オブジェクト内の面と頂点の数を減らします。

入力パッチは、フィールドとを持つ構造体fvfaces、vertices2 つの行列facesおよび vertices (たとえば、 の結果を参照)、またはパッチ オブジェクトpatch_handleisosurfaceへのハンドル ( を参照) によって表すことができます。 patch

パッチ内の面と頂点の数は、パッチの最短のエッジをその中点に反復的に折りたたむことによって削減されます (ここで説明されているように: https://libigl.github.io/libigl/tutorial/tutorial.html#meshdecimation )。

現在、三角形で構成されたパッチのみがサポートされています。結果のパッチも三角形のみで構成されます。

reducepatch有効なパッチへのハンドル patch_handleが指定され、出力引数が指定されずに呼び出されると、指定されたパッチが直ちに更新されます。

reduction_factorを省略すると、結果の構造である Reduced_fv には、元のパッチの面の約 50% が含まれます。reduction_factor が 0 (除外) から 1 (除外) までの小数の場合、ほぼ対応する面の割合を持つパッチが決定されます。reduction_factorが1 以上の整数の場合、結果のパッチには約reduction_factor 個の面が含まれます。パッチのジオメトリによっては、結果の面の数が、指定されたreduction_factorの値と異なる場合があります。これは、共有頂点が多数検出された場合に特に当てはまります。

削減のためには、接触する面の頂点が共有されている必要があります。共有されている頂点は自動的に検出されます。オプションの文字列引数を渡すことで、この検出をスキップできます"fast"。

オプションの文字列引数を使用すると"verbose"、追加のステータス メッセージがコマンド ウィンドウに出力されます。

文字列入力引数は、他のすべての引数の後に渡す必要があります。

1 つの出力引数で呼び出された場合、縮小された面と頂点は、フィールドとを持つ構造 体Reduced_fvに返されます(の 1 つの出力オプションを参照)。 facesverticesisosurface

2 つの出力引数を指定して呼び出された場合、縮小された面と頂点は、2 つの別々の行列、reduced_facesと Reduced_verticesで返されます。

See also: isosurface, isonormals, reducevolume, patch.

: shrinkfaces (p, sf)
: nfv = shrinkfaces (p, sf)
: nfv = shrinkfaces (fv, sf)
: nfv = shrinkfaces (f, v, sf)
: [nf, nv] = shrinkfaces (…)
パッチ内の面のサイズを縮小係数sfで縮小します。

パッチ オブジェクトは、グラフィックス ハンドル ( p )、フィールドとを持つパッチ構造 ( fv )、または面と頂点の 2 つの別々の行列 ( f、v ) として指定できます。"faces""vertices"

縮小係数sfは、新しい面が占める元の領域の割合を指定する正の数値です。係数を指定しない場合は、デフォルトは 0.3 (元のサイズの 30% に縮小) です。係数が 1.0 より大きい場合は、面が拡大されます。

最初の入力引数としてパッチ ハンドルが指定され、出力パラメータがない場合、パッチ面の縮小をその場で実行し、パッチを再描画します。

1 つの出力引数で呼び出された場合は、縮小後のデータを含むフィールド "faces"、"vertices"、 を持つ構造体を返します。この構造体は、関数への入力引数として直接使用できます。 "facevertexcdata"patch

注意:凸面ではない面に対して縮小操作を実行すると、望ましくない結果が生じる可能性があります。

例: 三角形にされた 3/4 円とそれに対応する縮小バージョン。

[phi r] = meshgrid (linspace (0, 1.5*pi, 16), linspace (1, 2, 4));
tri = delaunay (phi(:), r(:));
v = [r(:).*sin(phi(:)) r(:).*cos(phi(:))];
clf ()
p = patch ("Faces", tri, "Vertices", v, "FaceColor", "none");
fv = shrinkfaces (p);
patch (fv)
axis equal
grid on

See also: patch.

: d = diffuse (sx, sy, sz, lv)
法線ベクトル要素sx、sy、szによって定義される表面の拡散反射強度を計算します。

光源の位置ベクトルlv は、度単位の 2 要素ベクトル [方位角、仰角] または 3 要素ベクトル [x、y、z] として指定できます。

See also: specular, surfl.

: refl = specular (sx, sy, sz, lv, vv)
: refl = specular (sx, sy, sz, lv, vv, se)
フォンの近似を使用して、 法線ベクトル要素sx、sy、szによって定義される表面の鏡面反射強度を計算します。

光源の位置と視聴者の位置のベクトルは、それぞれパラメータlvとvvを使用して指定されます。位置ベクトルは、度単位の 2 要素ベクトル [方位角、仰角] または 3 要素ベクトル [x、y、z] として指定できます。

オプションの 6 番目の引数は、鏡面指数 (広がり) seを指定します。指定しない場合、se はデフォルトで 10 になります。
See also: diffuse, surfl.

: lighting (type)
: lighting (hax, type)
パッチまたはサーフェス グラフィック オブジェクトの照明を設定します。

型の有効な引数は

"flat"
ファセット照明効果を使用してオブジェクトを描画します。

"gouraud"
頂点間の照明効果を線形補間してオブジェクトを描画します。

"none"
光と影の効果なしでオブジェクトを描画します。

最初の引数haxが軸ハンドルの場合、 によって返される現在の軸ではなく、この軸内のオブジェクトの照明効果を変更します gca。

照明効果は、少なくとも 1 つのライト オブジェクトが存在し、同じ軸に表示されている場合にのみ表示されます。

See also: light, fill, mesh, patch, pcolor, surf, surface, shading.

: material shiny
: material dull
: material metal
: material default
: material ([as, ds, ss])
: material ([as, ds, ss, se])
: material ([as, ds, ss, se, scr])
: material (hlist, …)
: mtypes = material ()
: refl_props = material (mtype_string)
サーフェスとパッチの照明の反射率プロパティを設定します。

patchこの関数は、現在の軸にあるすべてのオブジェクトとオブジェクトの周囲光、拡散光、鏡面反射の強度、および鏡面反射指数と鏡面反射色反射率を変更します surface。 と併用すると、特定のマテリアルの反射特性をある程度シミュレートできますlight。

文字列で呼び出されると、前述のプロパティは次の表の値に従って設定されます。

mタイプ 周囲の強さ 拡散強度 鏡面強度 鏡面指数 鏡面反射色
"shiny" 0.3 0.6 0.9 20 1.0
"dull" 0.3 0.8 0.0 10 1.0
"metal" 0.3 0.3 1.0 25 0.5
"default" "default" "default" "default" "default" "default"
3 つの要素のベクトルで呼び出されると、現在の軸にあるすべてのオブジェクトpatchとsurfaceオブジェクトの周囲光、拡散光、および鏡面反射の強度が更新されます。オプションの 4 番目のベクトル要素は鏡面反射指数を更新し、オプションの 5 番目のベクトル要素は鏡面反射色の反射率を更新します。

グラフィック ハンドルのリストを最初の引数として渡すこともできます。この場合、これらのハンドルとすべての子patchおよび surfaceオブジェクトのプロパティが更新されます。

さらに、material単一の出力引数で呼び出すこともできます。入力引数なしで呼び出された場合は、使用可能なすべてのマテリアルの文字列を含む列セル ベクトルmtypes が返されます。1 つの入力引数mtype_string がマテリアルの名前である場合は、そのマテリアルの反射率プロパティを含む 1x5 セル ベクトル refl_props が返されます。どちらの場合も、グラフィック プロパティは変更されません。

See also: light, fill, mesh, patch, pcolor, surf, surface.

: camlight
: camlight right
: camlight left
: camlight headlight
: camlight (az, el)
: camlight (…, style)
: camlight (hl, …)
: camlight (hax, …)
: h = camlight (…)
シンプルなインターフェースを使用して、フィギュアにライト オブジェクトを追加します。

引数なしで呼び出されると、ライト オブジェクトが現在のプロットに追加され、カメラの現在の位置の少し上と右に配置されます。これは と同等ですcamlight right。コマンド camlight leftと はcamlight headlight同様に動作し、配置はカメラ位置の左側またはカメラ位置の中央になります。

さらに細かく制御するには、カメラの現在のプロパティを基準として、 方位角回転azと仰角el (両方とも度単位)でライトの位置を指定できます。

オプションの文字列スタイルは、ライトがローカルの点光源 ( "local"、デフォルト) であるか、無限距離に配置されている ( "infinite") かを指定します。

最初の引数hl がライト オブジェクトへのハンドルである場合は、新しいオブジェクトを作成するのではなく、このライト オブジェクトに対して操作を行います。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸に新しいライト オブジェクトを作成しますgca。

オプションの戻り値hは、ライト オブジェクトのグラフィック ハンドルです。これを使用して、ライト オブジェクトを移動したり、さらにプロパティを変更したりできます。

例:

プロットにライトオブジェクトを追加する

sphere (36);
camlight

光源を正確に配置する

camlight (45, 30);

ここで、ライトは最初にcamupカメラの位置( を参照)からcampos30 度上向きに傾けられます( を参照)。次に、右に 45 度ヨーイングされます。両方の回転は、カメラのターゲット( を参照)を中心に行われますcamtarget。

ライトオブジェクトをさらに操作するためのハンドルを返します

clf
sphere (36);
hl = camlight ("left");
set (hl, "color", "r");

See also: light.

: lightangle (az, el)
: lightangle (hax, az, el)
: lightangle (hl, az, el)
: hl = lightangle (…)
: [az, el] = lightangle (hl)
球面座標を使用して、現在の軸にライト オブジェクトを追加します。

ライトの位置は、方位角回転azと仰角el(両方とも度単位)によって指定されます。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸に新しいライト オブジェクトを作成しますgca。

最初の引数hl がライト オブジェクトへのハンドルである場合は、新しいオブジェクトを作成するのではなく、このライト オブジェクトに対して操作を行います。

オプションの戻り値hlは、ライト オブジェクトへのグラフィックス ハンドルです。

例:

プロットにライトオブジェクトを追加する

clf;
sphere (36);
lightangle (45, 30);

See also: light, view, camlight.

: [xx, yy] = meshgrid (x, y)
: [xx, yy, zz] = meshgrid (x, y, z)
: [xx, yy] = meshgrid (x)
: [xx, yy, zz] = meshgrid (x)
x座標とy座標のベクトルを指定すると、完全な 2 次元グリッドに対応する 行列xx とyyを返します。

xxの行はxのコピーであり、 yyの列はyのコピーです。yが省略された場合は、 xと同じであるとみなされます。

オプションのz入力が指定されるか、zzが要求された場合、出力は完全な 3D グリッドになります。zが省略され、zzが要求された場合は、 yと同じであると見なされます。

meshgridは、プロットされる 2D または 3D 関数の入力を生成するために最もよく使用されます。次の例では、「sombrero」関数の表面プロットを作成します。

f = @(x,y) sin (sqrt (x.^2 + y.^2)) ./ sqrt (x.^2 + y.^2);
range = linspace (-8, 8, 41);
[X, Y] = meshgrid (range, range);
Z = f (X, Y);
surf (X, Y, Z);

プログラミング ノート:meshgridは 2D または 3D グリッド生成に制限されています。このndgrid関数は 1D から N D グリッドを生成します。ただし、関数は完全に同等ではありません。x が長さ M のベクトルで、y が長さ N のベクトルである場合、 はNxMの meshgrid出力グリッドを生成します。 は、ndgrid 同じ入力に対して MxN (転置) の出力を生成します。コア関数の中にはmeshgrid、入力を必要とするものもあれば、入力を必要とするものもあります ndgrid。適切な入力形式を確認するには、該当する関数のドキュメントを確認してください。
See also: ndgrid, mesh, contour, surf.

: [y1, y2, …, yn] = ndgrid (x1, x2, …, xn)
: [y1, y2, …, yn] = ndgrid (x)
n 個のベクトルx1、…、x n が与えられると、ndgridn 次元の n 個の配列が返されます。

i 番目の出力引数の要素には、i 番目の次元とは異なるすべての次元で繰り返されるベクトルx i の要素が含まれます。1 つの入力引数xのみを使用して ndgrid を呼び出すことは、すべての n 個の入力引数がxに等しい ndgrid を呼び出すことと同じです。

[y1, y2, …, yn] = ndgrid (x, …, x)

プログラミング ノート: は、最初の 2 つの次元が と比較して転置されている点を除いて、ndgrid関数と非常によく似ています 。コア関数の中には 、入力を必要とするものもあれば、入力を必要とするものもあります。適切な入力形式を確認するには、該当する関数のドキュメントを確認してください。 meshgridmeshgridmeshgridndgrid

See also: meshgrid.

: plot3 (x, y, z)
: plot3 (x, y, z, prop, value, …)
: plot3 (x, y, z, fmt)
: plot3 (x, cplx)
: plot3 (cplx)
: plot3 (hax, …)
: h = plot3 (…)
3D プロットを作成します。

さまざまな引数の組み合わせが可能です。最も単純な形式は

plot3 (x, y, z)

ここで、引数は 3 次元でプロットされる点の頂点とみなされます。引数がすべて同じ長さのベクトルである場合、1 本の連続線が描画されます。引数がすべて行列である場合、各列は別々の線として扱われます。行数を一致させるために引数を転置する試みは行われません。

引数が2つだけ与えられた場合、

plot3 (x, cplx)

2 番目の引数の実数部と虚数部は、それぞれy座標とz座標として使用されます。

引数が1つだけ与えられた場合、

plot3 (cplx)

引数の実数部と虚数部はy値 とz値として使用され、それらのインデックスに対してプロットされます。

議論は3つのグループに分けられることもある。

plot3 (x1, y1, z1, x2, y2, z2, ...)

3 つの引数の各セットは、3 次元内の個別の線または線のセットとして扱われます。

複数の1つまたは2つの引数のグループをプロットするには、各グループを空の書式文字列で区切ります。

plot3 (x1, c1, "", c2, "", ...)

によって描画される線オブジェクトに影響を与える複数のプロパティと値のペアを指定できますplot3。fmt 引数が指定されている場合は、と同じ方法で線オブジェクトがフォーマットされますplot。プロパティの完全なリストは、 Line Propertiesに記載されています。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

オプションの戻り値hは、作成されたプロットへのグラフィックス ハンドルです。

例:

z = [0:0.05:5];
plot3 (cos (2*pi*z), sin (2*pi*z), z, ";helix;");
plot3 (z, exp (2i*pi*z), ";complex sinusoid;");

See also: ezplot3, plot.

: view (azimuth, elevation)
: view ([azimuth elevation])
: view ([x y z])
: view (2)
: view (3)
: view (hax, …)
: [azimuth, elevation] = view ()
現在の軸の視点を照会または設定します。

パラメータazimuthとelevation は、 2 つの引数または 2 要素ベクトルとして指定できます。視点は、直交座標x、y、zで指定することもできます。

この呼び出しにより、view (2)視点が 方位角 = 0 、仰角 = 90に設定されます。これは 2D グラフのデフォルトです。

この呼び出しにより、view (3)視点が 方位角 = -37.5 、仰角 = 30に設定されます。これは 3D グラフのデフォルトです。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸に対して操作を行いますgca。

入力が指定されていない場合は、現在の方位角と 仰角を返します。

: camlookat ()
: camlookat (h)
: camlookat (handle_list)
: camlookat (hax)
カメラを動かしてプロパティを調整し、オブジェクトを確認します。

入力がハンドルhの場合、カメラはhの境界ボックスの中心を向くように設定されます。カメラの位置は、境界ボックスが視野をほぼ埋めるように調整されます。

このコマンドは、カメラの視線方向 ( camtarget() - campos())、カメラの上方向ベクトル ( を参照camup)、および視野角 ( を参照camva) を固定します。カメラのターゲット ( を参照camtarget) とカメラの位置 ( を参照campos) が変更されます。

引数がリストhandle_listの場合、すべてのオブジェクトに対して単一の境界ボックスが計算され、カメラは上記のように調整されます。

引数が軸オブジェクトhaxの場合、軸の子要素がhandle_listとして使用されます。入力なしで呼び出された場合は、現在の軸が使用されます (を参照gca)。

See also: camorbit, camzoom, camroll.

: p = campos ()
: campos ([x y z])
: mode = campos ("mode")
: campos (mode)
: campos (hax, …)
カメラの位置を取得または設定します。

デフォルトのカメラ位置はシーンに基づいて自動的に決定されます。たとえば、カメラ位置を取得するには、次のようにします。

hf = figure();
peaks()
p = campos ()
 ⇒ p =
     -27.394  -35.701   64.079

次に、カメラを Z 軸に沿ってさらに上方に移動します。

campos (p + [0 0 10])
campos ()
 ⇒ ans =
     -27.394  -35.701   74.079

変更を加えると、カメラの位置モードは手動になります。

campos ("mode")
 ⇒ manual

自動に戻すこともできます:

campos ("auto")
campos ()
 ⇒ ans =
     -27.394  -35.701   64.079
close (hf)

デフォルトでは、これらのコマンドは現在の軸に影響します。または、オプションの引数haxで軸を指定することもできます。

See also: camup, camtarget, camva.

: camorbit (theta, phi)
: camorbit (theta, phi, coorsys)
: camorbit (theta, phi, coorsys, dir)
: camorbit (theta, phi, "data")
: camorbit (theta, phi, "data", "z")
: camorbit (theta, phi, "data", "x")
: camorbit (theta, phi, "data", "y")
: camorbit (theta, phi, "data", [x y z])
: camorbit (theta, phi, "camera")
: camorbit (hax, …)
ターゲットを中心にカメラを上下左右に回転させます。

カメラを、あたかもターゲットの周りを周回しているかのように、 上方向にphi度、右方向にtheta度移動します。例:

sphere ()
camorbit (30, 20)

これらの回転は、カメラ ターゲットを中心に行われます ( を参照camtarget)。まず、カメラの位置は、 視線方向 (具体的には) とカメラの「上方向のベクトル」( を参照) の両方に直交する軸を中心にphi度回転して上下に傾けられます。例: camtarget() - campos()camup

camorbit (0, 20)

2 番目の回転は、座標系coorsysと方向dir の入力に依存します。coorsys のデフォルトはです"data"。この場合、カメラはdirで指定された軸を中心にtheta度回転して左または右にヨーイングされます。dir のデフォルトは で、ベクトル に対応します 。例: "z"[0, 0, 1]

camorbit (30, 0)

coorsysが に設定されている場合"camera"、カメラはカメラの上方向ベクトルに平行な軸を中心に回転して左または右に移動します ( を参照camup)。この場合、入力dir は指定しないでください。例:

camorbit (30, 0, "camera")

(注意: phiによる回転はの影響を受けません"camera"。)

このコマンドは、と のcamorbit2 つのカメラ プロパティを変更します 。 camposcamup

デフォルトでは、このコマンドは現在の軸に影響します。または、オプションの引数haxで軸を指定することもできます。
See also: camzoom, camroll, camlookat.

: camroll (theta)
: camroll (hax, theta)
カメラを回します。

カメラを時計回りにシータ度回転させます。たとえば、次のコマンドはカメラを時計回りに 30 度 (右) 回転させます。これにより、シーンは左に 30 度回転するように見えます。

peaks ()
camroll (30)

カメラを後ろに回します:

camroll (-30)

次のコマンドは、デフォルトのカメラロールを復元します。

camup ("auto")

デフォルトでは、これらのコマンドは現在の軸に影響します。または、オプションの引数haxで軸を指定することもできます。

See also: camzoom, camorbit, camlookat, camup.

: t = camtarget ()
: camtarget ([x y z])
: mode = camtarget ("mode")
: camtarget (mode)
: camtarget (hax, …)
カメラが向いている場所を取得または設定します。

カメラターゲットは、カメラが向いている空間内の点です。通常は、シーンに基づいて自動的に決定されます。

hf = figure();
sphere (36)
v = camtarget ()
 ⇒ v =
    0   0   0

カメラを回して新しいターゲットに向けることができます。

camtarget ([1 1 1])
camtarget ()
 ⇒   1   1   1

そうすると、カメラのターゲットモードは手動になります。

camtarget ("mode")
 ⇒ manual

つまり、たとえば、シーンに新しいオブジェクトを追加しても、カメラは再ターゲットされません。

hold on;
peaks ()
camtarget ()
 ⇒   1   1   1

自動にリセットすることもできます:

camtarget ("auto")
camtarget ()
 ⇒   0   0   0.76426
close (hf)

デフォルトでは、これらのコマンドは現在の軸に影響します。または、オプションの引数haxで軸を指定することもできます。

See also: campos, camup, camva.

: up = camup ()
: camup ([x y z])
: mode = camup ("mode")
: camup (mode)
: camup (hax, …)
カメラの上方向のベクトルを取得または設定します。

デフォルトでは、カメラは「上」が正の Z 軸に対応するように向いています。

hf = figure ();
sphere (36)
v = camup ()
 ⇒ v =
     0   0   1

新しい「上方向のベクトル」を指定すると、カメラが回転し、モードが手動に設定されます。

camup ([1 1 0])
camup ()
 ⇒   1   1   0
camup ("mode")
 ⇒ manual

アップ ベクトルを変更しても、カメラ ターゲットは変更されません (を参照camtarget)。したがって、カメラのアップ ベクトルは、カメラのビューの方向に対して直交しない可能性があります。

camup ([1 2 3])
dot (camup (), camtarget () - campos ())
 ⇒ 6...

その結果、上方向のベクトルを「引き戻す」ことでは、カメラのビューはピッチングされません (ターゲットを変更する必要があるため)。したがって、上方向のベクトルの設定は、通常、カメラをロールする場合にのみ使用されます。この目的のためのより直感的なコマンドは ですcamroll。

最後に、アップベクトルを自動モードにリセットします。

camup ("auto")
camup ()
 ⇒   0   0   1
close (hf)

デフォルトでは、これらのコマンドは現在の軸に影響します。または、オプションの引数haxで軸を指定することもできます。
See also: campos, camtarget, camva.

: a = camva ()
: camva (a)
: mode = camva ("mode")
: camva (mode)
: camva (hax, …)
カメラの視野角を取得または設定します。

カメラには視野角があり、これによって見える範囲が決まります。デフォルトでは次のようになります。

hf = figure();
sphere (36)
a = camva ()
 ⇒ a =  10.340

より広角のビューを得るには、視野角を 2 倍にします。これにより、モードも手動に設定されます。

camva (2*a)
camva ("mode")
 ⇒ manual

自動に戻すこともできます:

camva ("auto")
camva ("mode")
 ⇒ auto
camva ()
 ⇒ ans =  10.340
close (hf)

デフォルトでは、これらのコマンドは現在の軸に影響します。または、オプションの引数haxで軸を指定することもできます。
See also: campos, camtarget, camup.

: camzoom (zf)
: camzoom (hax, zf)
カメラをズームインまたはズームアウトします。

zfの値が1 より大きい場合、シーンが拡大されて表示されるように「ズームイン」されます。

hf = figure ();
sphere (36)
camzoom (1.2)

1 より小さい値にすると「ズームアウト」され、カメラがより多くのシーンを見ることができるようになります。

camzoom (0.5)

技術的に言えば、ズームは「表示角度」に影響します。次のコマンドは、デフォルトのズームにリセットします。

camva ("auto")
close (hf)

デフォルトでは、これらのコマンドは現在の軸に影響します。または、オプションの引数haxで軸を指定することもできます。
See also: camroll, camorbit, camlookat, camva.

: slice (x, y, z, v, sx, sy, sz)
: slice (x, y, z, v, xi, yi, zi)
: slice (v, sx, sy, sz)
: slice (v, xi, yi, zi)
: slice (…, method)
: slice (hax, …)
: h = slice (…)
3D データ/スカラー フィールドのスライスをプロットします。

3 次元配列vの各要素は、パラメータx、y、zで指定された位置のスカラー値を表します。パラメータx、y、zは、形式の配列vと同じサイズの 3 次元配列か"meshgrid"、ベクトルです。パラメータxiなどは、 xなどと同様の形式に従い 、配列viが interp3 を使用して補間される点を表します 。ベクトルsx、sy、 szには、それぞれの軸の直交スライスの点が含まれます。
x、y、zが省略された場合は、 、と みなされます 。 x = 1:size (v, 2)y = 1:size (v, 1)z = 1:size (v, 3)

"nearest"
最も近い近傍を返します。

"linear"
最も近い近傍からの線形補間。

"cubic"
4 つの最も近い近傍からの 3 次補間 (まだ実装されていません)。

"spline"
3 次スプライン補間 - 曲線全体にわたって滑らかな 1 次導関数と 2 次導関数。

デフォルトの方法は です"linear"。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

オプションの戻り値hは、作成されたサーフェス オブジェクトへのグラフィックス ハンドルです。

例:

[x, y, z] = meshgrid (linspace (-8, 8, 32));
v = sin (sqrt (x.^2 + y.^2 + z.^2)) ./ (sqrt (x.^2 + y.^2 + z.^2));
slice (x, y, z, v, [], 0, []);
[xi, yi] = meshgrid (linspace (-7, 7));
zi = xi + yi;
slice (x, y, z, v, xi, yi, zi);

See also: interp3, surface, pcolor.

: ribbon (y)
: ribbon (x, y)
: ribbon (x, y, width)
: ribbon (hax, …)
: h = ribbon (…)
y対xの列のリボン プロットを描画します。

xが省略された場合、行番号を含むベクトル ( 1:rows (Y)) が想定されます。あるいは、x はyの行と同じ数の要素を持つベクトルにすることもできます。その場合、 yの各列に同じxが使用されます。

オプションのパラメータwidth は、単一のリボンの幅を指定します (デフォルトは 0.75)。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

オプションの戻り値hは、各リボンを表すサーフェス オブジェクトへのグラフィックス ハンドルのベクトルです。
See also: surface, waterfall.

: shading (type)
: shading (hax, type)
パッチまたはサーフェス グラフィック オブジェクトのシェーディングを設定します。

型の有効な引数は

"flat"
エッジが見えない単色のパッチ。

"faceted"
黒い縁取りの単色パッチ。

"interp"
パッチ頂点間の色は補間され、パッチのエッジは見えなくなります。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

See also: fill, mesh, patch, pcolor, surf, surface, hidden, lighting.

: scatter3 (x, y, z)
: scatter3 (x, y, z, s)
: scatter3 (x, y, z, s, c)
: scatter3 (…, style)
: scatter3 (…, "filled")
: scatter3 (…, prop, val)
: scatter3 (hax, …)
: h = scatter3 (…)
3D 散布図を描きます。

ベクトルx、y、zの座標によって定義される各ポイントにマーカーがプロットされます 。

マーカーのサイズはsによって決定されます。s はスカラーまたはx、y、zと同じ長さのベクトルになります。s が指定されていない場合、または空の行列の場合は、デフォルト値の 8 ポイントが使用されます。

マーカーの色はcによって決定されます。 cは、固定色を定義する文字列、色の赤、緑、青の要素を示す 3 要素のベクトル、現在のカラーマップへのスケールされたインデックスを示すxと同じ長さのベクトル、または各マーカーの RGB 色を個別に定義する Nx3 行列のいずれかになります。

使用するマーカーは、コマンドと同じ方法でマーカーを定義する文字列であるスタイルplot引数で変更できます。マーカーが指定されていない場合は、デフォルトで"o"または 円になります。引数"filled"が指定されている場合は、マーカーが塗りつぶされます。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

オプションの戻り値hは、ポイントを表す散布オブジェクトへのグラフィックス ハンドルです。

[x, y, z] = peaks (20);
scatter3 (x(:), y(:), z(:), [], z(:));

プログラミング ノート: プロパティの完全なリストは、 Scatter Propertiesに記載されています。

See also: scatter, patch, plot.

: waterfall (x, y, z)
: waterfall (z)
: waterfall (…, c)
: waterfall (…, prop, val, …)
: waterfall (hax, …)
: h = waterfall (…)
3D ウォーターフォール プロットをプロットします。

ウォーターフォール プロットはプロットに似ていますが、 z (x 値) meshzの行のメッシュ ラインのみが表示されます。

ワイヤーフレーム メッシュは、長方形を使用してプロットされます。長方形の頂点 [ x , ymeshgrid ] は通常、 xy 平面の 2 次元長方形領域上の の出力です。 z は、各頂点の平面からの高さを決定します。z行列が 1 つだけ指定されている場合は、メッシュ グリッド上にプロットされます 。したがって、zの列は異なるx値に対応し、zの行は異なるy値に対応します。 x = 1:columns (z), y = 1:rows (z)

メッシュの色は、現在のカラーマップの範囲に合わせてzcaxis値を線形にスケーリングすることによって計算されます。カラーマップを使用したり変更したりして外観を制御します。

オプションで、カラー マトリックスcを指定することにより、メッシュの色をzとは独立して指定できます。

すべてのプロパティ/値のペアは、基になるサーフェス オブジェクトに直接渡されます。プロパティの完全なリストは、 Surface Propertiesに記載されています。

最初の引数hax が軸ハンドルである場合、 によって返される現在の軸ではなく、この軸にプロットしますgca。

オプションの戻り値hは、作成されたサーフェス オブジェクトへのグラフィックス ハンドルです。

See also: meshz, mesh, meshc, contour, surf, surface, ribbon, meshgrid, hidden, shading, colormap, caxis.

Aspect Ratio
Three-dimensional Function Plotting
Three-dimensional Geometric Shapes