我想绘制x^2 + y^2 + z^2 <= 1
和abs(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绘制它?
答案 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
插图: