План состоит в том, чтобы построить фазу сложной 2D-функции, используя карту pm3d и повторяющуюся цветовую палитру непрерывным образом. Чтобы быть более конкретным, палитра определена только для [-pi, pi], в то время как сама фаза может выйти за пределы этого диапазона. Цветовая палитра должна повторяться для этих значений.
Моя текущая попытка состояла в том, чтобы заставить функцию оставаться внутри диапазона и начинать заново с другой стороны при пересечении границы, вычитая или добавляя кратные 2 * пи. Это, однако, приводило к артефактам всякий раз, когда в функции происходил такой скачок фазы. Обратите внимание на эти голубоватые пиксельные кольца на графике:
Это был код, используемый для создания этого графика:
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-графики с повторяющимися цветовыми узорами?
set pm3d corners2color c1
. Иначе я бы не знал, как это сделать. - person Christoph   schedule 17.10.2017