私はSVG内に非常に単純なパスを持っています。SVGのパスを横切る勾配
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 61 57"
version="1.1" x="0px" y="0px">
<defs>
<style type="text/css"><![CDATA[
]]>
</style>
</defs>
<path id="pipe" d="
M8.0178,52.0035
L27.0178,52.0035
C42.4568,52.0035 55.0178,39.4425 55.0178,24.0035
L55.0178,8.0035
L43.0178,8.0035
L43.0178,24.0035
C43.0178,32.8255 35.8398,40.0035 27.0178,40.0035
L8.0178,40.0035
L8.0178,52.0035
Z">
</path>
</svg>
(プレビュー:https://i.imgur.com/nVnxcRg.png)
Iはachiveたい私は3つの別々の勾配または充填空間を有することである。
- 最初のものは、内側曲線からです曲がったチューブの中心(曲線)。
- 2番目は中央の領域です。
- チューブの中心部分から外側の曲線までの3番目のもの。
また、複数の停止色を持つ1つのグラデーションを使用することもできます。この場合、私は全体の曲線に沿って使用する勾配を示す追加矩形を https://i.imgur.com/oPEFAZT.png:
次の画像は、所望の結果を示しています。
私はSVGの高度なグラデーションに関するいくつかの研究をしましたが、それらを適用する方法や必要があれば理解できませんでした。 私は、矩形やカーブにも放射状と線形のグラデーションを適用する方法を理解していますが、期待される結果が得られませんでした。
また、私はCan I apply a gradient along an SVG path?を見つけました。それは左から右へ(言い換えれば)チューブに勾配を作り、上から下に向かって欲しいと思います。
皆さん、これを解決する方法はありますか?
これは素晴らしいです。私はSVGの提案(私はそれがメッシュに関連していたと思う)で指定された高度なグラジエントを持つ一般化されたソリューションがあるのだろうかと思っていました。私は、パス内のSVGコマンドが矩形にどのように関係しているのか、そしてradialGradientのオフセットがパスにどのように関係しているかを調べようとしていました。あなたは何か指針を持っていますか? –
放射グラジェントは、グラデーションの中心が左上(cx = 0、cy = 0)になるように定義されています。勾配のオフセット値は基本的にパーセンテージです。最初のオフセットの0.57の値は、比率16(パイプの内径)から28(外径)に対応します。 16/28 = 0.57となる。したがって、グラデーションは外側の半径まで0.57から始まります。 0.677および0.893は、それぞれ0.57から1.0(勾配の終わりおよび外側半径)の距離の0.25および0.75(それぞれ)に対応する。 –