MATLAB';patch命令中的s颜色插值错误

MATLAB';patch命令中的s颜色插值错误,matlab,matlab-figure,Matlab,Matlab Figure,这与我前面的问题()有关,我修改了代码,将第一个顶点作为最后一个闭合面片的顶点,并得到了一致的答案 现在,由于面片位于正方形域上,如果我移动颜色坐标,插值面片应该是一致的,但它不是。我将使用相同的示例: 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];

这与我前面的问题()有关,我修改了代码,将第一个顶点作为最后一个闭合面片的顶点,并得到了一致的答案

现在,由于面片位于正方形域上,如果我移动颜色坐标,插值面片应该是一致的,但它不是。我将使用相同的示例:

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));

这种不一致很难理解。任何解释或解决方法都会有帮助。

为什么插值应该一致?插值是在三角形中完成的。如果你重新排列颜色,你会得到两个三角形顶点的不同颜色,从而得到不同的插值结果。这是有意义的,并解释了这种行为。对于我的问题,我希望结果是四边形上的双线性插值(知道面片命令对于n个顶点是通用的)。不过,我还是想知道一些变通办法。谢谢@CrisLuengo