Кто-нибудь знает, как построить с помощью gnuplot в 3D поверхность диска на плоскости XY
с определенной толщиной, имеющей круглое отверстие в центре и плоские верхнюю и нижнюю поверхности при фиксированном z
(тор, сплющенный на верхней и нижние поверхности).
1 ответ
Поскольку ваша фигура имеет вертикальные касательные, ее нельзя записать как z=f(x,y)
, поэтому использовать splot <function>
невозможно. Тем не менее, вы можете построить данные из файла, см., Например, решение для построения кубов: http://www.gnuplotting.org/plotting-cubes/
Чтобы использовать gnuplot для генерации самих данных, вы можете использовать псевдофайл "++" и модификаторы, вот как построить цилиндр:
splot [-1:1][-1:1][0:1] '++' u (cos(pi*$1)):(sin(pi*$1)):($2) w lines
Для построения верхней поверхности вы можете использовать тот же трюк:
replot '++' u ($2*cos(pi*$1)):($2*sin(pi*$1)):1 w lines
Для вашей точной формы необходимы незначительные изменения. Я советую вам определить функции для вычисления координат x и y, они могут использовать GPVAL_X_MIN
и co. чтобы нормализовать переменные $1
и $2
в соответствующем диапазоне независимо от диапазонов построения.