这与我之前的问题(Matlab's patch function with interpolation produces different result based on order of vertices)有关,在该问题中,我修复了代码,将第一个顶点作为最后一个关闭补丁的顶点,并获得了一致的答案。
现在,由于色块位于平方域上,因此如果我移动颜色坐标,则插值的色块应该是一致的,但事实并非如此。我将使用相同的示例:
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]';
order1 = [1:4,1]; %Edit according to last answer
figure;patch(x(order1),y(order1),c(order1));
order2 = [2:4,1:2];%order shift only for color
figure;patch(x(order1),y(order1),c(order2));
这种不一致很难理解。任何说明或解决方法都将有所帮助。