公告:本站正式转型为非交互式静态网站!
转型:本站将通过笔记和博客的形式继续为大家服务,关于 Mathematica 问答服务请移步至QQ群:365716997
联系:如有问题请联系QQ群管理员,或发送邮件至:lixuan.xyz@qq.com。
感谢:最后非常感谢大家多年来的支持与帮助!
参考《互联网跟帖评论服务管理规定》《中华人民共和国网络安全法》《网络信息内容生态治理规定》《互联网用户账号信息管理规定》

—— 2022-11-27

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

+1 投票
976 浏览

例如 3 层深度的

{{{Red, Green}, {Blue, Yellow}}, {{Magenta, Orange}, {Purple, Cyan}}}

想生成



{{{Red, None}, {None, None}}, {{None, None}, {None,None}}},
{{{None, Green}, {None, None}}, {{None, None}, {None,None}}}, 
{{{None, None}, {Blue, None}}, {{None, None}, {None,None}}}, 
{{{None, None}, {None, Yellow}}, {{None, None}, {None,None}}},
......


等等这些只有一个有颜色,另外全都是 None 的所有的这些列表。

因为 MeshShading 里面要求是这种格式。另外,如果有 2k 种颜色,如何生成  2 个这种列表?

用户: cvgmt (276 分)
修改于 用户:cvgmt
MeshShading 中貌似不支持 None 吧
另外,如果$2^k$种颜色,对应的列表每层是几维的呢(比如你给出的有3层,每层都有2个元素,也就是 2x2x2)。
n = 3;
colors = Table[RGBColor[RandomReal[], RandomReal[], RandomReal[]], 2^n]
list = Table[None, 2^n - 1];
Nest[Partition[#, 2] &, #, n - 1] &@Insert[list, colors[[#]], #] & /@
 Range[2^n]
None 表示不画,于是可以在图中产生挖洞的效果,是 MeshShading 支持的。

2 个回答

0 投票
此问题已解决,不再需要答案:https://www.zhihu.com/question/380800144
用户: osu700431 (61 分)
0 投票
colors = {{{Black, Green}, {Blue, Yellow}}, {{Magenta, 
    Orange}, {Purple, Gray}}}; n = ArrayDepth[colors]; 
ReplacePart[
   ConstantArray[None, ConstantArray[2, n]], # -> 
    Extract[colors, #]] & /@ Tuples[{1, 2}, n]
    

用户: cvgmt (276 分)
修改于 用户:cvgmt
...