Coloriser une région
Mes recherches n'ont mené nulle part sur celui-ci.
J'ai un MeshRegion(disons, une variété 2D incorporée en 3D) et je voudrais tracer une fonction dessus: de sorte que la couleur d'un point en (x, y, z) soit déterminée par une fonction des coordonnées.
J'ai trouvé MeshCellStyle, ce qui me permet de spécifier une couleur plate par cellule, mais donne accès aux coordonnées pour un ColorFunctionstyle complet . Il y a aussi RegionPlot3D, qui pourrait fonctionner (en utilisant (x,y,z) ∈ ℛ) pour une sous-variété pleine dimension, mais une fois passé un objet de dimension inférieure incorporé en 3D, l'algorithme d'échantillonnage ne frappe jamais.
Réponses
Vous pouvez extraire les coordonnées de maillage et les polygones de votre MeshRegionet les utiliser pour construire un GraphicsComplexavec VertexColors.
Par example:
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]
Utilisez VertexColors -> (Opacity[.7, Hue[f@##]] & @@@ Rescale[mc])pour obtenir