javascript - 如何使用 Raphael 在对象的内边缘创建渐变填充?

标签 javascript svg raphael

我有一个动态生成的图表,它说明了适合容器的项目范围,相对于项目的宽度和厚度。我试图证明靠近“拟合范围”边缘的项目可能不如靠近图表中间的项目拟合得好。为此,我想用绿色填充我的形状,它有一个渐变,在边缘周围变成黄色。这个黄色区域应该在整个内边缘周围具有均匀的厚度,如下图所示。我怎样才能用拉斐尔完成这个?我知道如何进行实心填充;渐变是我遇到困难的地方。预先感谢您的帮助!

Gradient Example

最佳答案

理论上,应该可以通过将图形切成四个三 Angular 形来做到这一点。

Slice the graph into four rectangles

然后可以用渐变填充每个三 Angular 形,该渐变主要是您的纯色,但在一端会变成您的边缘颜色。通过在渐变上设置直 Angular ,您可以使它看起来好像只有图形上的边缘具有不同的颜色。

Graph with edges in another color

我使用以下代码创建了上面的矩形。

var slice1 = paper.path("M200 200L100 100L300 100").attr({
    "fill": "90-#0f0:70-#ff0:95",
});

var slice2 = paper.path("M200 200L300 100L300 300").attr({
    "fill": "0-#0f0:70-#ff0:95",
});

var slice3 = paper.path("M200 200L300 300L100 300").attr({
    "fill": "270-#0f0:70-#ff0:95",
});

var slice4 = paper.path("M200 200L100 300L100 100").attr({
    "fill": "180-#0f0:70-#ff0:95",
});

不过,您的情况会稍微复杂一些。您必须首先找到图形的中间才能将其切成三 Angular 形。然后您需要找到每个渐变的 Angular 。

关于javascript - 如何使用 Raphael 在对象的内边缘创建渐变填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7758863/

相关文章:

javascript - 如何停止 CSS3 过渡

javascript - 如何创建更改网页字体的 Javascript/JSON 脚本

svg - (RaphaelJS)-如何填充路径的内部?

svg - 退出组区域时隐藏元素,类似于css溢出隐藏

svg - 自定义图标未显示在铁图标中

javascript - 棘手的拉斐尔 svg 动画

javascript - 为什么在 iOS4 中 http ://justplay. thefa.com 上的 svg 图像填充颠倒了?

javascript - 函数声明中指定的基于原型(prototype)的继承

javascript - 在父点击时将类添加到子组件

javascript - 为什么动画正在加速