以前,我問如何在應用變換時獲得a的真實坐標(d)path,最后我決定研究變換公式,我已經看到了平移,現在我看到了縮放(scale),我設法做一個縮放基本上公式是:
x’ = x * sx
y’ = y * sy
如果我有一個路徑 where 的d屬性(命令)M5, 5 L50, 5 L50, 45 L5, 45 Z,并且,如果我們檢查 DOM 中的路徑,我們會發現它有一個widthof135px和一個heightof 120px:
<svg width="300" height="300" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<rect x="0" y="0" width="100" height="100" fill="red" />
<path id="element" d="M5, 5 L50, 5 L50, 45 L5, 45 Z" fill="none" stroke="white" />
</svg>
因此,如果我想使用比例因子來縮放這條路徑2,它會是M10, 10 L100, 10 L100, 90 L10, 90,但是如果我們現在檢查 DOM 中的路徑,寬度是270px并且它height是240px:
<svg width="300" height="300" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<rect x="0" y="0" width="100" height="100" fill="red" />
<path id="element" d="M10, 10 L100, 10 L100, 90 L10, 90 Z" fill="none" stroke="white" />
</svg>
因此, 的值或比例因子2等價于 awidth和135pxa height,120px所以:
我怎樣才能使這個比例因子或值等于1px?
有轉換公式嗎?
玩弄,我設法猜測如果比例因子是:
1.1 = 15px-> 因此,width將135px增加到150px并且height將120px增加到135px。
1.01 = 1.5px-> 因此,width將135px增加到136.5px并且height將120px增加到121.5px。
我希望你明白我想做什么,我希望你能幫助我。
uj5u.com熱心網友回復:
我想我明白你在說什么,但你的公式似乎沒有意義。
1.1 = 15px -> 因此,寬度將從 135px 增加到 150px,高度將從 120px 增加到 135px
“15px”似乎是錯誤的。 1.1 * 135 = 148.5,不是150。
我想您要問的是如何計算使寬度變為 150 的比例。對嗎?
將寬度精確到 150 的比例可以這樣計算:
new_width 150
scale = ----------- = ----- = 1.1111...
old_width 135
所以檢查一下:135 * 1.1111... = 150.0。
使用此比例的新高度將是:120 * 1.1111... = 133.333...
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/484353.html
標籤:javascript svg 公式 像素 尺度变换
