MATLAB:确定多边形是否相交的方法
这是我确定多边形是否相交的方法MATLAB:确定多边形是否相交的方法,matlab,intersection,Matlab,Intersection,这是我确定多边形是否相交的方法 找到多边形每一侧的方程,同时求解另一侧的方程,以确定它们在何处相交,在何处相交 %m=[vector of gradients] c=[vector of y intersects]. y = (m_n)x + (c_n) x = (y-c) ./ (m-2) %(don't include first value for m and c) y = m.*x + c (我想你需要一个循环?) 然后,如果它们相交,这将被输入到一个矩阵中 intersects
%m=[vector of gradients] c=[vector of y intersects].
y = (m_n)x + (c_n)
x = (y-c) ./ (m-2) %(don't include first value for m and c)
y = m.*x + c
intersects = [x_1 y_1;...;x_n y_n] %(x_1 = 1st insect on x plane)
disp('This polygon is complex')
for i=1:length(m)
x{i} = (m(i)- c)./ (m-c(i));
y{i} = m.*x{i}+c;
end
为什么不使用
polyxpoly
?我需要证明我已经开发出了自己的方法。你的方法听起来很合理,但有几个警告。1) 您可能只需要对照不是相邻边的边检查每条边(平行相邻边是一种奇怪的特例)。2) 所有非平行线相交。确保交点实际上在边上,而不是在无限直线上的其他地方。如果我有一个梯度向量:m=[]和一个y截距向量:c=[]。那么,我将如何同时解决彼此之间的矛盾呢。在底部检查我的问题@道格,我想你差不多明白了。看起来您应该亲自尝试,并在此时调试自己的代码。