该计划是使用 pm3d 映射和以连续方式重复的调色板来绘制 2D 复杂函数的相位。更具体地说,调色板仅在 [-pi, pi] 上定义,而相位本身可能会超出此范围。调色板应为这些值重复。
我目前的尝试是通过减去或添加 2*pi 的倍数来强制函数保持在范围内并在越过边界时从另一侧重新开始。然而,每当函数中发生这种相位跳跃时,这都会导致伪影。注意图中那些蓝色的像素环:
这是用于生成此图的代码:
set pm3d map
set palette model HSV defined ( 0 0 1 1, 1 1 1 1 )
set samples 100; set isosamples 100
set xrange [-4:4]
set yrange [-4:4]
set cbrange [-pi:pi]
set cblabel "Phase"
phaseCont(u,v) = 2*pi* ((u/4)**2 + (v/4)**2)
phaseClip(u,v) = phaseCont(u,v) - (floor(phaseCont(u,v)/(2*pi) + 0.5) * 2*pi)
set terminal png
set output "phaseplot.png"
splot phaseClip(x,y) with pm3d
unset output
当插值发生时,伪影出现是有道理的,但这当然不是我想要的。
有没有办法用重复的颜色图案创建漂亮的 2D 图?