差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
plot:3d_surface [2022/05/22 08:05] – watalu | plot:3d_surface [2022/05/22 08:23] (現在) – watalu | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ===== 3次元空間の曲面の描画 ===== | + | ===== 3次元空間の曲面の描画 ===== |
+ | ==== R ==== | ||
+ | === Z座標を行列で与える場合 === | ||
+ | |||
+ | 3次元の曲面は、2次元平面上の点(x, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ただし、関数z=f(x,y)の表示には、3角形のポリゴンを描画していく必要はない。通常は、X-Y平面上の格子点上の関数の値Zを得て、四角形を作って表示すれば十分である。むしろこの方が、計算点を明示できていい。 | ||
基本は関数persp。 | 基本は関数persp。 | ||
行 15: | 行 23: | ||
{{: | {{: | ||
+ | |||
+ | zには計算点上の値を行列として与えている。xとyには、軸方向の計算点のベクトルを与えている。この三つを関数perspに与えると、上のグラフを得る。 | ||
+ | |||
これに少し工夫を加えて、色を指定できる。 | これに少し工夫を加えて、色を指定できる。 | ||
行 24: | 行 35: | ||
persp(x, y, z, col = z.color[facetcol]) | persp(x, y, z, col = z.color[facetcol]) | ||
</ | </ | ||
+ | z.colorsは、青と黄色の中間色でz軸方向の値を表現することを宣言している。z.colorは具体的に、青と黄色を100分割して色を定めている。配列zfacetは、説明するよりむしろ中身を見てもらう方がいい。これは、それぞれの4点で定まる格子上の四角形の頂点のzの値の平均を与えている。配列facetcolは、z軸の値を100分割している。こうすると最後に、z.color[facetcol]は各ポリゴンの中央の値に最も近い100分割に対応する色を返す。 | ||
+ | |||
上のコードを実行すると、次のグラフが描画される。 | 上のコードを実行すると、次のグラフが描画される。 | ||
行 39: | 行 52: | ||
細かいカスタマイズが可能な関数perspと、カスタマイズなしに少し見栄えのいい画像を生成してくれる関数persp3Dを、必要に応じて使い分けるといい。 | 細かいカスタマイズが可能な関数perspと、カスタマイズなしに少し見栄えのいい画像を生成してくれる関数persp3Dを、必要に応じて使い分けるといい。 | ||
+ | |||