【问题标题】:Plotting intersection of planar surfaces in matlab在matlab中绘制平面的交点
【发布时间】:2013-12-24 12:56:22
【问题描述】:

我希望在 MATLAB 中绘制位于同一平面的两个曲面(补丁)的交点。

正如您在上图中看到的,绿色圆圈与四个红色矩形相交。我只想绘制(或修补)四个交叉点。我该如何进行?

我尝试使用条件语句在位于一个矩形和圆的交点之外的圆形补丁上绘制点。但是 MATLAB 抛出一个错误。这里是代码 sn-p。

[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语句处报错。基本上代码中的“points”代表绿色圆圈中的所有点。Pa1,Pa2,Pa3,Pa4代表左上角矩形的顶点,Pa1为左边角顶顶点,Pa2,Pa3,Pa4顺时针依次跟随。

谢谢

【问题讨论】:

    标签: matlab plot


    【解决方案1】:

    补丁是由多边形定义的,而您正在寻找的是两个多边形的交集,而这两个多边形本身就是一个多边形。

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

    如果没有,请查看 Matlab File Exchange 上的提交 Polygon_Intersection

    另见intersection and union of polygons

    【讨论】:

      猜你喜欢
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 2014-01-25
      • 2022-12-21
      • 2011-03-28
      • 2013-01-27
      相关资源
      最近更新 更多