我目前正在绘制 2 个相互重叠的独立 3 维无定形斑点。我通过变形单位圆创建了斑点(如您在下面提供的代码中所见)。我的问题是:有没有一种简单的方法可以隔离重叠区域?我需要隔离重叠区域,然后对其进行不同的着色(例如,将区域变为绿色)以清楚地显示重叠的位置。我的实际程序有许多重叠的形状,但是为了简单起见,我生成了以下代码来说明我正在尝试做的事情:
% Create Sphere with 100 points
N = 100; % sphere grid points
[X,Y,Z] = sphere(N); % get x,y,z coordinates for sphere
num=size(X,1)*size(X,2); % get total amount of x-coordinates (m*n)
% Loop through every x-coordinate and apply scaling if applicable
for k=1:num % loop through every coordinate
value=X(k); % store original value of X(k) as value
if value<0 % compare value to 0
X(k)=0.3*value; % if < 0, scale value
end
end
% Loop through every z-coordinate and apply scaling if applicable
for k=1:num % loop through every coordinate
value=Z(k); % store original value of X(k) as value
if value>0 % compare value to 0
Z(k)=0.3*value; % if < 0, scale value
end
end
mesh(X,Y,Z,'facecolor','y','edgecolor','y','facealpha',...
0.2,'edgealpha',0.2);
hold on
mesh(-1*(X-1),Y,Z,'facecolor','r','edgecolor','r','facealpha',...
0.2,'edgealpha',0.2);
hold off
axis equal
我不需要寻找代码,只是一个有效的算法或过程来实现预期的结果,因为我需要将此结果调整到我拥有的更复杂的程序中。