Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
surf
3次元曲面プロット
呼び出し手順
surf(Z,<GlobalProperty>) surf(Z,color,<GlobalProperty>) surf(X,Y,Z,<color>,<GlobalProperty>) surf(<axes_handle>,...)
引数
- Z
曲面の高さを定義する実数行列.省略することはできません. Zデータは
m
xn
行列です.- 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
)= [m
xn
]
の行列とします.
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
が [m
xn
]行列の場合,
C color
行列の次元は[m
xn
]
(頂点毎に1つの色)または
[m-1
xn-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())
参照
Report an issue | ||
<< secto3d | 3d_plot | surface_properties >> |