matlab中的分离轴

matlab中的分离轴,matlab,separating-axis-theorem,Matlab,Separating Axis Theorem,我一直致力于在matlab中实现分离轴算法。我找了很多,但没有找到任何解决办法。你能指出错误吗? 提前谢谢 function flag = intersection(P1,P2) %P1 and P2 are x,y coordinates of triangles and 3x2 matrix %a normal line of an edge of P1 dx = P1(2,1)-P1(1,1); dy = P1(2,2)-P1(1,2); normal(1,:)=[-dy dx]; %s

我一直致力于在matlab中实现分离轴算法。我找了很多,但没有找到任何解决办法。你能指出错误吗? 提前谢谢

function flag = intersection(P1,P2)
%P1 and P2 are x,y coordinates of triangles and 3x2 matrix

%a normal line of an edge of P1
dx = P1(2,1)-P1(1,1);
dy = P1(2,2)-P1(1,2);
normal(1,:)=[-dy dx];
%same procedure for P2..

%getting the projection
P1_proj = dot(P1(1,:),normal(1,:))/dot(normal(1,:),normal(1,:))*normal(1,:);
%same procedure for P2..

xmin_P1 = min(P1_proj(:,1));
xmax_P1 = max(P1_proj(:,1));
%same procedure for P2..

if((xmin_P1>xmax_P2)||(xmin_P2>xmax_P1))    
    flag = false;
    return;
end

flag=true;
end

运行代码时会发生什么以及应该发生什么?请阅读。很难从你的代码中分辨出来。我在上发布了一个简单的SAT实现演示。将它与您的实现进行比较,看看您是否能够发现问题。运行代码时会发生什么以及应该发生什么?请阅读。很难从你的代码中分辨出来。我在上发布了一个简单的SAT实现演示。将它与您的实现进行比较,看看您是否能够发现问题。