如何使用PostScript中的双线性渐变有效地对四边形进行着色

时间:2017-04-27 00:50:29

标签: postscript

我正在创建一个PostScript绘图,其中有数百个四边形。我希望每个四边形都使用四种颜色之间的双线性插值进行着色,每种颜色都与一个顶点相关联。

目前,对于每个四边形,我使用的是

newpath
<<
/BBox [294      353.6387      627.0481      644.4492
/Domain [294      353.6387      627.0481      644.4492
/ShadingType 6
/ColorSpace [/DeviceRGB]
/DataSource
[
0
   322.00000000    639.52198166
   308.00000000    633.28505452
   308.00000000    633.28505452
   294.00000000    627.04812738
   309.50334395    629.25461291
   309.50334395    629.25461291
   325.00668790    631.46109845
   339.32269715    637.95516131
   339.32269715    637.95516131
   353.63870639    644.44922417
   337.81935320    641.98560292
   337.81935320    641.98560292
0.23047     0.29688        0.75 
0.23047     0.29688        0.75 
0.91493     0.82918     0.78143 
0.91948     0.82593     0.77364 
]
>>
shfill

ShadingType 6似乎对我想要完成的事情有点过分,但是将四边形细分为三角形并进行线性插值会产生较低质量的东西。

是否有更有效的方法对此效果进行编码,以便更快地渲染数百个四边形?

1 个答案:

答案 0 :(得分:1)

通过将shfill替换为

,我能够显着提高速度
gsave
x y w h rectclip
shfill
grestore

其中xy是包含矩形的左下角坐标,wh是矩形的宽度和高度。