地域を色付けする

Sep 04 2020

私の検索はこれでどこにもつながりませんでした。

私はMeshRegion(たとえば、3Dに埋め込まれた2D多様体)を持っていて、その上に関数をプロットしたいと思います:(x、y、z)の点の色が座標の関数によって決定されるように。

MeshCellStyleセルごとに単色を指定できるが、フルColorFunctionスタイルの座標にアクセスできることがわかりました。もありますRegionPlot3D。これは(x,y,z) ∈ ℛ、完全次元の部分多様体に対して(を使用して)機能する可能性がありますが、3Dに埋め込まれた低次元のオブジェクトが渡されると、サンプリングアルゴリズムはヒットしません。

回答

9 kglr Sep 04 2020 at 17:13

あなたは、あなたのメッシュ座標とポリゴンを抽出することができますMeshRegionし、構築するためにそれらを使用GraphicsComplexしてVertexColors。

例えば:

mreg = DiscretizeRegion[
       ImplicitRegion[-3 y - 4 x y^2 + 4 x z^2 + 4 x^2 z + 2 y^2 z^2 + z^3 == 0, 
         {x, y, z}],  MaxCellMeasure -> .001]

mc = MeshCoordinates[mreg];

polys = MeshCells[mreg, 2];

f[x_, y_, z_] := x y + z; 

Graphics3D[{EdgeForm[], 
  GraphicsComplex[mc, polys, VertexColors -> (Hue[f@##] & @@@ Rescale[mc])]}, 
  Boxed -> False]

VertexColors -> (Opacity[.7, Hue[f@##]] & @@@ Rescale[mc])取得するために使用