以下是用户手册中的代码:
> stops = mkStops [(gray, 0, 1), (white, 0.5, 1), (purple, 1, 1)]
> gradient = mkLinearGradient stops ((-0.5) ^& 0) (0.5 ^& 0) GradPad
> sq1 = square 1 # fillTexture gradient
> sq2 = square 1 # fillTexture (gradient & _LG . lGradSpreadMethod .~ GradRepeat
> & _LG . lGradStart .~ (-0.1) ^& 0
> & _LG . lGradEnd .~ 0.1 ^& 0)
> sq3 = square 1 # fillTexture (gradient & _LG . lGradSpreadMethod .~ GradReflect
> & _LG . lGradStart .~ (-0.1) ^& 0
> & _LG . lGradEnd .~ 0.1 ^& 0)
>
> example = hcat' (with & sep .~ 0.25) [sq1, sq2, sq3]
这是我得到的:
以下是手册中的内容:
他们并不完全匹配。
ghc 7.8.3, OS X 10.10
diagrams 1.2
output: SVG
答案 0 :(得分:1)
看起来mac的svg渲染器不支持传播方法。这里的屏幕截图来自和Chrome(OS X 10.9.5,Chrome版本37)以及相同的svg:
像imagemagick这样的工具根本不会渲染它们,但这是SVG后端中的一个错误,应该在下一个版本中修复。
我实际上一直在为另一个后端手动实现扩展方法,所以我们也可能在svg后端添加一个选项,以便更好地兼容。
Rasterific和Cairo后端渐变应该(大部分)起作用。 (开罗的svg输出仍然不适用于Safari,但它与imagemagick有关)