Раскрасить регион
Мои поиски ни к чему не привели.
У меня есть MeshRegion(скажем, 2D-многообразие, встроенное в 3D), и я хотел бы построить на нем функцию: так, чтобы цвет точки в (x, y, z) определялся функцией координат.
Я нашел MeshCellStyle, что позволяет мне указывать плоский цвет для каждой ячейки, но дает доступ к координатам для полного ColorFunctionстиля. Есть также RegionPlot3D, что может работать (использовать (x,y,z) ∈ ℛ) для полномасштабного подмногообразия, но при передаче объекта более низкой размерности, встроенного в 3D, алгоритм выборки никогда не срабатывает.
Ответы
Вы можете извлекать координаты сетки и свои многоугольники 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])чтобы получить