Java SVG线性梯度尺度与翻译问题
我有以下径向梯度:Java SVG线性梯度尺度与翻译问题,java,math,svg,linear-algebra,matrix-multiplication,Java,Math,Svg,Linear Algebra,Matrix Multiplication,我有以下径向梯度: <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,-
<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,等等)
很明显,将cx、cy、fx、fy和r乘以.1,我将在一定程度上达到目的。但是,我如何通过编程重新修改gradientTransform以获得剩下的部分?我会保持参数(cx、fx、r等)不变。只需将现有变换矩阵与新矩阵相乘,即可进行缩放。生成的矩阵是渐变的新变换矩阵 如果要围绕中心进行缩放,还需要在缩放矩阵中添加平移 这就是比例因子s=0.1的情况:
newGradientTansform =
oldGradienTransform * matrix(s, 0, 0, s, -cx*(s-1), -cy*(s-1))
“(x位置变为402,y位置变为5451”您输入错误,对吗?