繁体   English   中英

在Matlab中绘制平面交点

[英]Plotting intersection of planar surfaces in matlab

我正在寻找在MATLAB中绘制位于同一平面的两个曲面(面)的交点。 在此处输入图片说明

如上图所示,绿色圆圈与四个红色矩形相交。我只想绘制(或修补)四个相交,如何进行?

我试图使用条件语句在一个矩形和圆形的交点之外的圆形补丁上绘制点,但是MATLAB会引发错误,这是代码片段。

[p,q] = size(points);
for s=1:1:q;
t = points(1,s);
if (points(1,s) >= Pa3(1,1)) && (points(1,s) <= Pa2(1,1)) && (points(2,s) >= Pa3(1,2)) &&  (points(2,s) <= Pa4(1,2))
    points(1,s) = 0;points(2,s) = 0;
end
end

fill3(points(1,:), points(2,:), points(3,:), 'g');

上面的代码在if语句上引发错误。基本上,在代码中“点”表示绿色圆圈中的所有点。Pa1,Pa2,Pa3,Pa4表示左上角矩形的顶点,其中Pa1是左上角顶点Pa2,Pa3,Pa4顺时针跟随。

谢谢

面块由多边形定义,您要查找的是两个多边形的交集,而两个多边形本身就是一个多边形。

如果有Mapping Toolbox ,则可以使用polybool计算多边形的相交和其他逻辑运算。

如果不是,请查看Matlab文件交换上的提交Polygon_Intersection

另请参见多边形的交集和并集

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM