Построить тороид с прямоугольным сечением в 3D

502
Fred

Кто-нибудь знает, как с помощью gnuplot нанести трехмерную поверхность диска на XYплоскость определенной толщины, имеющую круглое отверстие в центре и фиксированные плоские верхнюю и нижнюю поверхности z(тор, сплющенный на верхней и нижней поверхностях)? ).

2

1 ответ на вопрос

0
Joce

Поскольку ваша форма имеет вертикальные касательные, она не может быть записана как 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и совместно. для нормализации переменных $1и $2в соответствующем диапазоне независимо от диапазонов построения.

Похожие вопросы