0

如何可视化两个 3-D 场的交集?我有以下函数 1. a*b*c ∈ [3,5] <br> 2. a/(b*c) ∈ [80,100] 其中 a,b,c ∈ [0,100]。

我正在寻找这 2 个 3-D 场/实体的交集?

我已经发现了如何可视化简化的情况(2 个曲面的交集): 1.a*b*c=5 2.a/(b*c)=99

zlim = 1;  
tol = 0.02; %define width of tube for proximity calculation
crop = @(z) max(min(z,zlim),-zlim); %limit domain   
Cfun = @(x,y) crop(5./(x.*y)); % Apply domain limit to 'Cfun*x*y=5'
Dfun = @(x,y) crop(x./(99*y)); % Apply domain limit to 'x/(Dfun*y)=90'

t = 10:0.2:100;
[X,Y] = meshgrid(t,t);
C = Cfun(X,Y);
D = Dfun(X,Y);

S = NaN(size(C)); 
SI = abs(C-D) < tol*max(abs(C),abs(D)); % checks proximity of function values
S(SI) =max(C(SI),D(SI));

surf(X,Y,S,0.5*ones(size(S)),'EdgeColor','none','LineStyle','none','FaceLighting','phong');
%plot intersection line

我很高兴看到任何代码或提示!

4

1 回答 1

1

我建议使用分离轴定理。作为参考,请查看 S. Gottschalk、MC Lin、D. Manocha、OBBTree:用于快速干扰检测的层次结构,位于:Proc。SIGGRAPH,ACM,纽约,纽约,美国,1996 年,第 171-180 页。它非常强大,我已经成功地将它用于立方体和长方体之间的干涉检测,长方体以任意 3-D 角度相交,以非常精确地计算两个物体之间的相交体积。

于 2014-08-27T12:31:35.563 回答