差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
plot:3d_surface [2022/05/22 08:16] wataluplot:3d_surface [2022/05/22 08:23] (現在) watalu
行 1: 行 1:
 ===== 3次元空間の曲面の描画 ===== ===== 3次元空間の曲面の描画 =====
-==== Z座標を行列で与える場合 ====+==== R ==== 
 +=== Z座標を行列で与える場合 ===
  
-3次元の曲面は、2次元平面上の点(x, y)と、その点でのZ座標の値zを与え、隣接する座標を直線で結ぶことで、得られた3角形を描いていくことで、描画できる。(下図はWikipediaの[[https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%AA%E3%82%B4%E3%83%B3%E3%83%A1%E3%83%83%E3%82%B7%E3%83%A5|ポリゴンメッシュ]]の図をお借りした)+3次元の曲面は、2次元平面上の点(x, y)と、その点でのZ座標の値zを与え、隣接する座標を直線で結ぶことで、得られた3角形を、光源との角度に応じた色の明暗を反映させて描いていくことで、描画できる。(下図はWikipediaの[[https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%AA%E3%82%B4%E3%83%B3%E3%83%A1%E3%83%83%E3%82%B7%E3%83%A5|ポリゴンメッシュ]]の図をお借りした)
  
 {{:plot:250px-dolphin_triangle_mesh.png|}} {{:plot:250px-dolphin_triangle_mesh.png|}}
行 34: 行 35:
 persp(x, y, z, col = z.color[facetcol]) persp(x, y, z, col = z.color[facetcol])
 </code> </code>
 +z.colorsは、青と黄色の中間色でz軸方向の値を表現することを宣言している。z.colorは具体的に、青と黄色を100分割して色を定めている。配列zfacetは、説明するよりむしろ中身を見てもらう方がいい。これは、それぞれの4点で定まる格子上の四角形の頂点のzの値の平均を与えている。配列facetcolは、z軸の値を100分割している。こうすると最後に、z.color[facetcol]は各ポリゴンの中央の値に最も近い100分割に対応する色を返す。
 +
 上のコードを実行すると、次のグラフが描画される。 上のコードを実行すると、次のグラフが描画される。
  
行 50: 行 53:
 細かいカスタマイズが可能な関数perspと、カスタマイズなしに少し見栄えのいい画像を生成してくれる関数persp3Dを、必要に応じて使い分けるといい。 細かいカスタマイズが可能な関数perspと、カスタマイズなしに少し見栄えのいい画像を生成してくれる関数persp3Dを、必要に応じて使い分けるといい。
  
-==== Z座標もベクトルで与える場合 ====