Web SVG中的椭圆梯度

Web SVG中的椭圆梯度,web,graphics,svg,gradient,ellipse,Web,Graphics,Svg,Gradient,Ellipse,有没有办法在SVG中生成椭圆渐变 我尝试了下面建议的代码,但它只显示一个红色椭圆,而不是渐变: <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN" "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd"> <svg width="100%" heigh

有没有办法在SVG中生成椭圆渐变

我尝试了下面建议的代码,但它只显示一个红色椭圆,而不是渐变:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN"
 "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd">

<svg width="100%" height="100%" 
    xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     xmlns:ev="http://www.w3.org/2001/xml-events" >

  <defs>
    <radialGradient id="gradientDefinition"
      gradientUnits="userSpaceOnUse">
      <stop stop-color="yellow" offset="0%" />
      <stop stop-color="red" offset="100%" />
    </radialGradient>
  </defs>

  <ellipse cx="250" cy="150" rx="200" ry="100" stroke="white"
    stroke-width="1" stroke-dasharray="1 1 1 1"
    style="fill:url(#gradientDefinition)" />
</svg>


我想要一个椭圆渐变,而不是椭圆内部的圆形渐变。

为了总结前面的发现,似乎从
标记中删除
gradientUnits=“userSpaceOnUse”
属性和值对可以使径向渐变变成(或至少看起来变成)椭圆形。此外,向每个
标记添加
停止不透明度
属性和值可以更容易看到椭圆渐变效果(至少出于演示目的)

以下是进行了上述更改的代码:

<defs>
    <radialGradient id="gradientDefinition" >
        <stop stop-color="yellow" offset="0%" stop-opacity="0" />
        <stop stop-color="red" offset="100%" stop-opacity="1" />
    </radialGradient>
</defs>

要显示此代码是否正常工作,请执行以下操作:

请参阅:vs

还有一个类似的例子,它似乎为类似的椭圆梯度方法提供了类似的行为,该教程的结果可以在本文中找到


注意:如果此方法不适用于您的目的,可能会有其他更好的方法(可能与或类似的方法有关)

您使用的是哪种浏览器?(当这在Chrome中出现时,我可以在图像中看到渐变…@summea我已经在Firefox和Inkscape中尝试过了。评论中的链接适用于Firefox。很抱歉误读了您原始帖子中的最后一行;那么(例如,如果去掉
gradientUnits=“userSpaceOnUse”
属性/值会发生什么情况?)尽管如此,它仍然可能只是一个圆形渐变。。。抱歉,如果是这样的话。@summea删除该参数后,它看起来更椭圆,所以这可能是关键。