我有以下径向梯度:

<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" />

我想用90%来降低这种梯度在尺寸和翻译已在此新比例它适当地基于(x位置变为402.2,y位置变为545.1,等等)。

显然,.1乘CX,CY,FX,FY和r会得到我的存在方式的一部分。但是,我怎么编程返工gradientTransform拿到剩下的路?

有帮助吗?

解决方案

我将离开参数(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