我有一个带有x,y,c坐标的补丁,如下所示。更改点的顺序后,MATLAB 的patch
颜色插值也会发生变化。
x = [0.9000 1.0000 1.0000 0.9000]';
y = [0.5000 0.5000 0.6000 0.6000]';
c = [0.0278 0.0371 0.0325 0.0282]';
figure();
patch(x,y,c);
order = [2:4,1];
figure();
patch(x(order),y(order),c(order));
上面会产生两个不同的色块。但是,坐标和颜色仅以循环方式更改了顺序。 有什么建议可以克服这个问题吗?
我认为这是因为您没有关闭补丁 - 如果补丁中的最后一个点与第一个点不同,MATLAB 会自动关闭它。显然,这与颜色插值有些奇怪。如果您稍微修改代码以关闭补丁,如下所示:
figure;
order = [1:4,1];
patch(x(order),y(order),c(order));
figure;
order = [2:4,1:2];
patch(x(order),y(order),c(order));
figure;
order = [3:4,1:3];
patch(x(order),y(order),c(order));
然后你每次都会得到相同的补丁。