Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SVG线性梯度尺度与翻译问题_Java_Math_Svg_Linear Algebra_Matrix Multiplication - Fatal编程技术网

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”您输入错误,对吗?