Octave 4.2.1中如何让新重叠区域隐藏旧区域的被覆盖边缘?
Octave隐藏被覆盖图形边缘的解决方法
针对你在Octave 4.2.1中遇到的新区域覆盖旧区域但旧区域边缘仍显示的问题,有两种实用的解决方法:
方法1:将旧区域边缘颜色设为与填充色一致
修改旧区域的fill代码,添加EdgeColor属性,让边缘颜色和填充色相同。这样被新区域覆盖的边缘会和旧区域填充色融为一体,被新区域颜色完全遮盖,视觉上就不会显示出来。
修改后的代码:
clear all close all clc %region 1 x = [0 1 1]; y = [0 0 1]; fill(x,y,'b','EdgeColor','b') % 边缘颜色设为蓝色,与填充色一致 hold on %region 2 x = [0 1 1]; y = [1 1 0]; fill(x,y,'y')
方法2:调整图形堆叠顺序,让新区域覆盖旧区域边缘
通过获取图形句柄,使用uistack函数将旧区域图形置于底层,新区域图形在顶层,这样新区域的填充会完全覆盖旧区域的重叠边缘部分,未被覆盖的旧区域边缘则保留原有样式。
修改后的代码:
clear all close all clc %region 1 x = [0 1 1]; y = [0 0 1]; h1 = fill(x,y,'b'); % 获取旧区域图形句柄 hold on %region 2 x = [0 1 1]; y = [1 1 0]; h2 = fill(x,y,'y'); % 获取新区域图形句柄 uistack(h1, 'bottom'); % 将旧区域图形移至底层
你可以根据需求选择:如果需要旧区域未被覆盖的边缘也和填充色一致,选方法1;如果要保留旧区域未被覆盖边缘的原有样式,选方法2。
内容的提问来源于stack exchange,提问作者Aria
相关产品推荐
相关产品推荐

