質問

私は、次の放射状の勾配を有します:

<radialGradient
   inkscape:collect="always"
   xlink:href="#linearGradient2454"
   id="radialGradient2460"
   cx="4022.8572"
   cy="5451.2656"
   fx="4022.8572"
   fy="5451.2656"
   r="3559.865"
   gradientTransform="matrix(-0.1071067,-0.1166362,0.1377765,-7.0459663e-2,276.61943,1452.439)"
   gradientUnits="userSpaceOnUse" />

私は(x位置は402.2となる、Y位置など、545.1となる)が90%のサイズでこの勾配を低減し、適切にこの新しいスケールに基づいてそれを翻訳したいと思います。

当然、0.1により、CX、CY、FX、FY、およびRを乗算することは私が道の一部を取得します。しかし、どのように私はプログラム的に道の残りの部分を取得するためにgradientTransformを手直ししますか?

役に立ちましたか?

解決

Iはそのままパラメータ(CX、FX、Rなど)を残すであろう。ただ、スケーリングのための新しい行列を持つ既存の変換行列を掛けます。結果の行列は、あなたの勾配のための新たな変換行列である。

あなたが中心の周りに拡張したい場合は、

そして、あなたはまた、スケーリング行列に翻訳を追加しました。

これはファクタs = 0.1をスケーリングするであろう:

newGradientTansform = 
oldGradienTransform * matrix(s, 0, 0, s, -cx*(s-1), -cy*(s-1))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top