Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
5.3.0 - 日本語

Change language to:
English - Français - Português

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

Scilab manual >> Graphics Library > 3d_plot > surf

surf

3次元曲面プロット

呼び出し手順

surf(Z,<GlobalProperty>)
surf(Z,color,<GlobalProperty>)
surf(X,Y,Z,<color>,<GlobalProperty>)
surf(<axes_handle>,...)

パラメータ

Z

曲面の高さを定義する実数行列.省略することはできません. Zデータはmxn行列です.

X,Y

実数の行列とベクトル: 常にセットで設定し,これらのデータは新しい標準グリッドを 定義します.この新しいグリッドのX および Y 要素はZの次元に一致している必要があります (下記説明参照).

color

オプションの実数行列で,グリッドの 各点(X(j),Y(i))に関する色の値を定義します (下記説明参照).

<GlobalProperty>

このオプションの引数は, グローバルオブジェクトのプロパティを定義する 一連の命令{PropertyName,PropertyValue}を表し, このプロットで作成された全ての曲線に適用されます (利用可能なプロパティの完全なリストについては, GlobalPropertyを参照.)

<axes_handle>

このオプションの引数は, カレントの軸 (gca参照)ではなく, axes_handleにより指定された軸の内部へのプロットを 強制します.

説明

surf は, X Y座標で定義される矩形グリッドを用いて パラメータ表現の曲面をカラーでプロットします. (if {X,Y}が指定されない場合, このグリッドは Z行列の次元により定義されます); このグリッドの各点において Z座標はZ行列により指定されます(必須のデータのみ). surfはMatlabの構文をより良く扱うために作成されました. グラフィックの互換性を改善するために, Matlabユーザは ( plot3dではなく) surf を使用する必要があります.

データエントリの仕様 :

このパラグラフでは,より明確化するために, GlobalPropertyオプション引数について言及しません. これは,それらがentry dataと干渉しないからです. ("Xdata", "Ydata" および "Zdata" プロパティを除く, GlobalProperty参照). これらのオプションの引数も全て使用可能と仮定されます.

Z行列のみが指定された場合, surf(Z)は, 1:size(Z,2)をx軸,1:size(Z,1)をy軸として定義した グリッドに対して行列Zをプロットします.

{X,Y,Z}が指定された場合, Zは,大きさ(Z)= [mxn] の行列とします. Xまたは Y 次のようになります :

  • a) ベクトル : X がベクトルの場合, length(X)=nです. Yがベクトルの場合, length(Y)=mです.

    b) 行列 : この場合, size(X) (または size(Y)) は size(Z)に等しい必要があります.

Colorエントリの仕様 :

前記のように, 曲面は矩形グリッドのサポートにより作成されます. 以下のような2つの独立変数 i および jを考えてみましょう:

この仮想的な矩形グリッドは, XY平面に支持された 実際の曲面を構築する際に使用されます. 実際には, X,Y および Z データは (X または Y がベクトルの場合でも, 下記参照) 同じ大きさを有し, 曲面を指定する3つの関数x(i,j), y(i,j) および z(i,j)として扱うことができます. X またはYがベクトルの場合, 内部的には行列Zの次元と一致する正しい行列を作成する ために使用されます(グリッドは強制的に矩形領域となります).

3つの関数x(i,j), y(i,j) および z(i,j)を考えると, 連続する2つのi and jの間で 定義される曲面の部分は,パッチと呼ばれます.

デフォルトで, color行列がsurfのコール時に付加されない場合, colorパラメータはZデータにリンクされます. color行列が指定された場合, 2種類の異なる手段でパッチに適用されます: 頂点または各パッチの中心.

これにより, Z が [mxn]行列の場合, C color行列の次元は[mxn] (頂点毎に1つの色)または [m-1xn-1] (パッチ毎に1色)とします.

Colorの表現はいくつかのGlobalProperyの設定によっても変化します:

FaceColorプロパティは影モードを設定します : この値は'interp' または 'flat' (デフォルトモード)となります. 'interp'が選択された場合, パッチに双一次色補間が適用されます. size(C) が size(Z)-1 に等しい場合 (すなわち,各パッチ毎に1色のみが指定される場合), パッチを定義する頂点の色はそのパッチに指定された色に設定されます.

'flat' (デフォルトモード) が有効の場合, カラー小平面表現(パッチ毎に1色)を使用します. size(C)がsize(Z) (すなわち, 各頂点毎に1つの色のみを指定した場合)に等しい場合, C の最後の行と列は無視されます.

GlobalProperty 引数は曲面をカスタマイズする際に使用されます. 以下にその動作について簡単に説明します:

GlobalProperty

このオプションは曲面の描画方法を指定するために使用できます. これは, PropertyNameおよびその値 PropertyValue(PropertyNameの型に 依存して文字列,整数または...となります) を定義する文字列から構成される一連の命令となります. 複数のプロパティを設定することもできます: 面および縁の色, 色データ, 色データのマッピング, クリッピングおよび 曲面の縁の厚さ... (GlobalProperty参照 )

これらのプロパティは全てsurfaceエンティティプロパティにより(再)設定できます (surface_properties参照).

注意

デフォルトで, 連続する曲面のプロットは重ね描きされます. 前のプロットを消去するには,clf()を使用してください. Tauto_clearモードをデフォルトのモードとして有効にするには, デフォルトの軸を以下のように編集してください:

da=gda();

da.auto_clear = 'on'

コマンド surf によりデモを参照できます.

// Zの初期化 

Z= [   0.0001    0.0013    0.0053   -0.0299   -0.1809   -0.2465   -0.1100   -0.0168   -0.0008   -0.0000
    0.0005    0.0089    0.0259   -0.3673   -1.8670   -2.4736   -1.0866   -0.1602   -0.0067    0.0000
    0.0004    0.0214    0.1739   -0.3147   -4.0919   -6.4101   -2.7589   -0.2779    0.0131    0.0020
   -0.0088   -0.0871    0.0364    1.8559    1.4995   -2.2171   -0.2729    0.8368    0.2016    0.0130
   -0.0308   -0.4313   -1.7334   -0.1148    3.0731    0.4444    2.6145    2.4410    0.4877    0.0301
   -0.0336   -0.4990   -2.3552   -2.1722    0.8856   -0.0531    2.6416    2.4064    0.4771    0.0294
   -0.0137   -0.1967   -0.8083    0.2289    3.3983    3.1955    2.4338    1.2129    0.2108    0.0125
   -0.0014   -0.0017    0.3189    2.7414    7.1622    7.1361    3.1242    0.6633    0.0674    0.0030
    0.0002    0.0104    0.1733    1.0852    2.6741    2.6725    1.1119    0.1973    0.0152    0.0005
    0.0000    0.0012    0.0183    0.1099    0.2684    0.2683    0.1107    0.0190    0.0014    0.0000];

//簡単な曲面
surf(Z); // X および Y はZの次元により定義されます

// 面の色が赤,縁が青の同じ曲面
scf(2); // 図2を新規作成
surf(Z,'facecol','red','edgecol','blu")

// X および Y の初期化
// NB: here, X has the same lines and Y the same columns
X = [ -3.0000   -2.3333   -1.6667   -1.0000   -0.3333    0.3333    1.0000    1.6667    2.3333    3.0000
   -3.0000   -2.3333   -1.6667   -1.0000   -0.3333    0.3333    1.0000    1.6667    2.3333    3.0000
   -3.0000   -2.3333   -1.6667   -1.0000   -0.3333    0.3333    1.0000    1.6667    2.3333    3.0000
   -3.0000   -2.3333   -1.6667   -1.0000   -0.3333    0.3333    1.0000    1.6667    2.3333    3.0000
   -3.0000   -2.3333   -1.6667   -1.0000   -0.3333    0.3333    1.0000    1.6667    2.3333    3.0000
   -3.0000   -2.3333   -1.6667   -1.0000   -0.3333    0.3333    1.0000    1.6667    2.3333    3.0000
   -3.0000   -2.3333   -1.6667   -1.0000   -0.3333    0.3333    1.0000    1.6667    2.3333    3.0000
   -3.0000   -2.3333   -1.6667   -1.0000   -0.3333    0.3333    1.0000    1.6667    2.3333    3.0000
   -3.0000   -2.3333   -1.6667   -1.0000   -0.3333    0.3333    1.0000    1.6667    2.3333    3.0000
   -3.0000   -2.3333   -1.6667   -1.0000   -0.3333    0.3333    1.0000    1.6667    2.3333    3.0000];

Y= [   -3.0000   -3.0000   -3.0000   -3.0000   -3.0000   -3.0000   -3.0000   -3.0000   -3.0000   -3.0000
   -2.3333   -2.3333   -2.3333   -2.3333   -2.3333   -2.3333   -2.3333   -2.3333   -2.3333   -2.3333
   -1.6667   -1.6667   -1.6667   -1.6667   -1.6667   -1.6667   -1.6667   -1.6667   -1.6667   -1.6667
   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000
   -0.3333   -0.3333   -0.3333   -0.3333   -0.3333   -0.3333   -0.3333   -0.3333   -0.3333   -0.3333
    0.3333    0.3333    0.3333    0.3333    0.3333    0.3333    0.3333    0.3333    0.3333    0.3333
    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000
    1.6667    1.6667    1.6667    1.6667    1.6667    1.6667    1.6667    1.6667    1.6667    1.6667
    2.3333    2.3333    2.3333    2.3333    2.3333    2.3333    2.3333    2.3333    2.3333    2.3333
    3.0000    3.0000    3.0000    3.0000    3.0000    3.0000    3.0000    3.0000    3.0000    3.0000];

// 例 1
scf(3)
surf(X,Y,Z)

// 例2
// 見てわかるように,グリッドは矩形には不要
scf(4)
X(1,4) = -1.5;
Y(1,4) = -3.5;
Z(1,4) = -2;
surf(X,Y,Z)

// 例3
// X および Y はベクトル => サンプル1と同じ動作
// ベクトルを指定すると, グリッドは必然的に矩形となる
scf(5)// 図5を新規作成
X=[ -3.0000   -2.3333   -1.6667   -1.0000   -0.3333    0.3333    1.0000    1.6667    2.3333    3.0000];
Y=X;
surf(X,Y,Z)

//LineSpec および GlobalProperty の例:
xdel(winsid()) // 既存の図を全て削除
surf(Z,Z+5) // color 配列を指定
e=gce();
e.cdata_mapping='direct' // デフォルトはカラーマップに関して 'scaled' r
e.color_flag=3; // 補間影モード. surf のデフォルトは 4 ('flat' モード) 

scf(2)
surf(X,Y,Z,'colorda',ones(10,10),'edgeco','cya','marker','penta','markersiz',20,'markeredg','yel','ydata',56:65)

scf(3)
surf(Z,'cdatamapping','direct')
scf(4)
surf(Z,'facecol','interp') // 補間影モード (color_flag == 3)

scf(10)
axfig10=gca();
scf(11);
surf(axfig10,Z,'ydat',[100:109],'marker','d','markerfac','green','markeredg','yel') // draw onto the axe of figure 10

xdel(winsid())

作者

F.Leray

<< secto3d 3d_plot surface_properties >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Jan 26 16:25:11 CET 2011