gnuplot规范球的交点

时间:2018-12-15 14:27:18

标签: gnuplot

我想绘制x^2 + y^2 + z^2 <= 1abs(x) + abs(y) + abs(z) <= 2的交点

应该是

-1<=x<=1, -sqrt(1 - x^2)<y<sqrt(1 - x^2), -sqrt(-x^2 - y^2 + 1 <=z<=sqrt(-x^2 - y^2 + 1)

有没有办法用gnuplot绘制它?

1 个答案:

答案 0 :(得分:0)

我要发表的评论太久了... 您可以在gnuplot中绘制曲面,但是我不知道如何以上面给出的数学形式直接以某种方式绘制/可视化它们(如果可以的话,我也很感兴趣。)而且我不知道您可以与实体相交物体,并获得相交,排除等,就像在CAD系统中一样。

但是,除此之外,如果我绘制您的身体,则球体(等式1)和八面体(等式2)的相交将是球体本身,因为它完全在八面体内部(请参见左图和右图)中心)。例如,如果将八面体缩放0.75(右图),则将得到与原始球体不同的相交。

这只是一个说明,但仍然不是您要寻找的解决方案。

一些代码说明:

### start code
reset session
set parametric
set view equal xyz

$Octahedron <<EOD
0 0 2
2 0 0
0 2 0
0 0 2

0 0 2
0 2 0
-2 0 0
0 0 2

0 0 2
-2 0 0
0 -2 0
0 0 2

0 0 2
0 -2 0
2 0 0
0 0 2

0 0 -2
2 0 0
0 2 0
0 0 2

0 0 -2
0 2 0
-2 0 0
0 0 2

0 0 -2
-2 0 0
0 -2 0
0 0 2

0 0 -2
0 -2 0
2 0 0
0 0 2
EOD

set xrange [-2:2]
set xtics 1
set yrange [-2:2]
set ytics 1
set zrange [-2:2]
set ztics 1
set urange [-pi/2:pi/2]
set vrange [0:2*pi]
set isosamples 19,13

set multiplot layout 1,3
splot $Octahedron u 1:2:3 w l not, \
    cos(u)*cos(v),cos(u)*sin(v),sin(u) not

set hidden
replot

splot $Octahedron u ($1*0.75):($2*0.75):($3*0.75) w l not, \
    cos(u)*cos(v),cos(u)*sin(v),sin(u) not

unset multiplot
### end of code

插图:

enter image description here