• ← 无需注册,可直接使用QQ或百度账号登录

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

—— 2022-11-27

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

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

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

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

社区建议QQ群:365716997

分类

+1 投票
1.4k 浏览

仿照ColorFunction写VectorColorFunction:

fn = Log[x + I y, z*E^(I w)];
colorBody = Hue[(Arg[fn] + \[Pi])/(2 \[Pi]), 1, 1, 1];
ParallelTable[
 VectorPlot3D[{Re[fn], -Im[fn], Abs[fn]}, {x, -2 \[Pi], 
   2 \[Pi]}, {y, -2 \[Pi], 2 \[Pi]}, {z, -2 \[Pi], 2 \[Pi]}, 
  VectorScale -> {Medium, Automatic, #5^(1/4) &}, 
  VectorColorFunction -> (Function[{x, y, 
        z}, #] &@(colorBody))], {w, -\[Pi], \[Pi], 0.5}]

结果并不能得到预期结果,而且严重的报错。这是怎么回事呢?

分类:BUG | 用户: EmberEdison (806 分)
重新分类 用户:EmberEdison

1个回答

+2 投票
 
已采纳

……疑似是个Bug。你把colorBody最后表示不透明度的1去掉就能正常出图。实际上如果你去检查你那图的InputForm,会发现箭头其实画出来了,但是被加上了一个莫名很小的不透明度。所以用下面的方法修复其实也可:

fn = Log[x + I y, z*E^(I w)];
colorBody = Hue[(Arg[fn] + π)/(2 π), 1, 1, 1];
w = 1;
(VectorPlot3D[{Re[fn], -Im[fn], Abs[fn]}, {x, 0, 2 π}, {y, 0, 2 π}, {z, 0,
      2 π}, VectorScale -> {Medium, Automatic, #5^(1/4) &},
     VectorColorFunction -> (Function[{x, y, z}, #] &@(colorBody))] // Quiet) /.
 RGBColor[r_, g_, b_, a_] :> RGBColor[r, g, b]

顺便下面是一个更简单的重现问题的方法:

VectorPlot3D[{1, 1, 1}, {x, 0, 1}, {y, 0, 1}, {z, 0, 1}, 
 VectorColorFunction -> (Hue[1, 0, 0] &)]

你不妨去SE进一步问问,或者直接报给WRI。

用户: xzczd (2.2k 分)
修改于 用户:xzczd
帮我联系客服吧,是bug的话我就不弄它了。我不会联系客服。。
已反馈。(话说那在线反馈系统总算修好了……)
然而这个bug在11.0并没有被修复= =能帮忙看下有木有反馈么
...