octave - 绘制内部有孔的多边形
问题描述
我需要绘制一个矩形多边形,里面有一个矩形孔。我找到了这段代码,但我无法理解如何修改以满足我的要求。
figure()
p = [0 0; 0 1; 1 1; 1 0]; %ccw
pp = [0 0; 1 0; 1 1; 0 1]; %cw
ph = p + [1.2 0];
# add hole
ph(end+1,:) = nan;
ph = [ph; (pp-[0.5 0.5])*0.5+[1.7 0.5]];
po = polygon2patch (ph);
patch (po(:,1), po(:,2), 'b', 'facecolor', 'c');
axis image
解决方案
该polygon2patch
函数看起来确实很有用,但也许只绘制两个矩形,您也可以只使用两个patch
命令,并将内部矩形(即孔)设置为白色前景色,如下所示:
outer = [0 0; 2 0; 2 1; 0 1];
inner = [0.4 0.2; 1.6 0.2; 1.6 0.8; 0.4 0.8];
patch(outer(:, 1), outer(:, 2), 'c');
patch(inner(:, 1), inner(:, 2), 'w');
axis equal;
这将产生这样的输出:
希望有帮助!
推荐阅读
- swift - 为什么在删除索引后 SwiftUI 会以不同的方式为列表项设置动画?
- python - 将字典添加到 for 循环中的列表中,每次运行的最后一个 dict.key 的值未正确添加
- svelte - 如何在 Svelte 中动态定义“值”绑定?
- reactjs - React Native:在渲染之前调度操作以获取数据(Redux)
- splunk - Splunk 在仪表板上进行基础搜索并后处理结果
- python - 在 Python 中重现 ggpairs 图
- c# - 如何在 .NET Core 中从 DateTime 中剥离时区
- netbeans - Netbeans 12.1 菜单字体太小,--fontsize 不再适用于 Ubuntu 20.04 的 /etc/netbeans.conf
- excel - 在评估函数中将参数传递给公式单元格
- angular - 带有布尔复选框的角度搜索过滤器