ระบายสีพื้นที่
การค้นหาของฉันไม่มีใครนำไปสู่การค้นหานี้
ฉันมีMeshRegion(พูดคือท่อร่วม 2 มิติที่ฝังอยู่ใน 3 มิติ) และต้องการพล็อตฟังก์ชั่นบนมันดังนั้นสีของจุดที่ (x, y, z) จะถูกกำหนดโดยฟังก์ชันของพิกัด
ฉันพบMeshCellStyleแล้วซึ่งทำให้ฉันสามารถระบุสีแบนต่อเซลล์ได้ แต่ให้การเข้าถึงพิกัดสำหรับColorFunctionสไตล์เต็มรูปแบบ นอกจากนี้ยังRegionPlot3Dสามารถใช้งานได้ (โดยใช้(x,y,z) ∈ ℛ) สำหรับ submanifold แบบเต็มมิติ แต่เมื่อส่งผ่านวัตถุมิติต่ำกว่าที่ฝังอยู่ใน 3 มิติอัลกอริทึมการสุ่มตัวอย่างจะไม่เกิดขึ้น
คำตอบ
คุณสามารถแยกพิกัดตาข่ายและรูปหลายเหลี่ยมของคุณ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])เพื่อรับ