考虑以下 MATLAB 代码:
C = [ 0 0 0 0 0
0 1 2 1 0
0 2 4 2 0
0 1 2 1 0
0 0 0 0 0 ];
pcolor( C );
shading interp;
axis square
请注意,C
它在 90 度旋转下是不变的。另请注意帮助中的这句话pcolor
:
使用着色 interp,每个单元格通过使用 C 的所有元素在其四个顶点处的颜色的双线性插值来着色。
但是,绘制的图像如下:
请注意,图像在 90 度旋转下不是不变的(考虑例如四个角)。现在,除非我严重误解了双线性插值,否则这一定是错误的。MATLAB 似乎在对三角形进行插值,这与双线性插值不同。
有没有办法解决这个 MATLAB 错误,并获得正确的双线性插值?(除了自己手动插入额外的点,如果放大得足够远,这仍然无法解决问题。)