Javascript 从变量值缩放到百分比的数学算法

Javascript 从变量值缩放到百分比的数学算法,javascript,math,Javascript,Math,好的,你必须坚持我的观点,因为我现在把自己弄糊涂了 当我将svg添加到一个rapheal paper元素时,我试图计算出svg的比例 以下是需要发生的事情: 我所有的SVG都是可变宽度的。 当我将它们添加到纸对象时,我希望它们的宽度为600px。我需要计算原始宽度的比例,无论原始宽度是2000px还是10px,它总是以600px计算 到目前为止我所拥有的是 var maxWidth = 600; var vWidth = vector.getBBox().width //this

好的,你必须坚持我的观点,因为我现在把自己弄糊涂了

当我将svg添加到一个rapheal paper元素时,我试图计算出svg的比例

以下是需要发生的事情:

我所有的SVG都是可变宽度的。 当我将它们添加到纸对象时,我希望它们的宽度为600px。我需要计算原始宽度的比例,无论原始宽度是2000px还是10px,它总是以600px计算

到目前为止我所拥有的是

    var maxWidth = 600;
    var vWidth = vector.getBBox().width //this could be anything;

    //Instert algorithym to work out the scale ratio
    //I am not smart enough to work this part out. Please help...
    //Currently this scale s set to what the original width is, but I want it to always be 600

    vector.scale(1, 1);
我希望这对某人有意义!我是一名设计师,后来成为了程序员(你可能知道)

谢谢

试试这个:

var maxWidth = 600;
var vWidth = vector.getBBox().width;
var xscale=600/vWidth;

vector.scale(xscale, 1);

如果将600除以元素的宽度,它将告诉您需要将其缩放多少才能得到600。我相信你在编码方面足够聪明:)

示例:

  • 元素的宽度为100px,所以您需要它使其变大6倍。600/100等于6
  • 元素的宽度为1800px,因此需要将其缩小3倍。600/1800是1/3,所以你也很好

w*c=600=>c=600/w
,其中
c
你的标量和
w
你的宽度你的问题有点混乱,在标题中你想要百分比,然后在代码中你想要比率,你到底想要哪一个?是的,现在一切都有意义了!!!你知道当你想得太多的时候是什么样子的。几天后我会用我的应用发回:)再次感谢。工作得很好!当然可以考虑到这个问题和其他问题,如果你认为你的问题解决了。嗨,ZNEAK,我只是想发布一个链接到你帮助我的网站。我在“创建贴花”部分使用了repheal再次感谢您的帮助