Как применить красивую окклюзию затухающих краев к функции splot Gnuplot? - PullRequest
1 голос
/ 01 октября 2019

Привет, коллеги-укладчики,

Итак, я являюсь поклонником gnuplot и продолжаю пытаться использовать gnuplot для рисования всех видов вещей (включая молекулы ), используя его. В эти дни я решил, что было бы замечательно, если бы я мог нарисовать многогранник в нем с этим прекрасным эффектом окклюзии, который мы видим в интерактивных многогранных изображениях javascript здесь . Посмотрите, как задняя сторона многогранника рисуется иначе, чем лицевая сторона, и как они динамически изменяются при вращении твердого тела? Как мне это сделать в gnuplot?

1 Ответ

2 голосов
/ 05 октября 2019

Я согласен, что это действительно хорошее представление. Gnuplot в настоящее время не может сделать эквивалент «нарисовать внутренние края, используя более тонкие линии», но сочетание частичной прозрачности и использования цвета фона в качестве цвета заливки для граней создает почти тот же эффект.

# Generation of polyhedral vertices and faces not shown.
# Each face is an object of type polygon, e.g.
#     set object 1 polygon from ... to ... to ...

# make all the faces semi-transparent
set for [i=1:20] object i fillstyle transparent solid 0.6 fillcolor bgnd border lw 2
# use pm3d depthorder sorting to render the objects
# NB: gnuplot version 5.3 required
set for [i=1:20] object i polygon depthorder

set xrange [-2:2]; set yrange [-2:2]; set zrange [-2:2]
set view equal xyz
set view 30,30,1.5
unset border
unset tics
unset key
unset label
splot NaN

Результаты показаны ниже для куба и для икосаэдра. Вы можете вращать их в интерактивном режиме, как и в любом другом слоте.

cubeicosahedron

...