是否可以用gnuplot可视化多个表面的交集:
set parametric
set hidden3d
set samples 25
set isosamples 25
splot u,v,0
replot u,0,v
我在这个例子中试图绘制的两个表面是两个平面。如何可视化这两个平面的交点?
答案 0 :(得分:2)
在数值上,这可以通过设置样本并定义相应的限制区间来完成。例如,假设您想要在间隔x = [-1:1],y = [-1:1]和z = [-1:1]中绘制平面,并在每个方向上使用101个样本:
set parametric ; set hidden3d
set isosamples 101
set xrange [-1:1]
set yrange [-1:1]
set zrange [-1:1]
splot u,v,0, u,0,v
现在,101个样本中的每一个对应于具有宽度(1 - (-1))/(101-1)= 0.02的间隔。如果我将平面之间的距离约束为低于该阈值的一半用于绘制点,那就是abs(u-u)&lt; 0.01,abs(v-0)&lt; 0.01和abs(0-v)<0.01。 0.01对于每个方向的每个区间,我都会得到一个采样点:
set parametric ; set hidden3d
set isosamples 101
set xrange [-1:1]
set yrange [-1:1]
set zrange [-1:1]
splot (abs(u-u) < 0.01 ? u : 1/0), \
(abs(v-0.) < 0.01 ? v : 1/0), \
(abs(v-0.) < 0.01 ? 0 : 1/0)
其中? something : 1/0
表示如果?
之前的条件满足,则something
忽略该点,然后我有交集: