1
我正在寫一個簡單的SVG繪圖應用程序,現在我正在嘗試優化線條繪製。原始變體在每個mousemove事件中繪製每個'lineTo'。它會造成看起來不好看的銳度。JS svg繪畫。如何降低畫線頻率(mousemove事件)?
使用全局變量testInt來模擬lineTo的動作之間的延遲,它提供了非常好的流暢線條,但似乎是不好的做法。任何人都可以建議一個更好的解
這是我的drawLine功能代碼(正如我所說的,它基本上修改現有<路徑>元素):
drawLine: function(id, X, Y){
var path = document.getElementById(id);
if(path.getAttribute('d'))
{
testInt++;
if(testInt>=6)
{
PathHelper.addLineTo(path, X, Y);
testInt = 0;
}
}
else
{
PathHelper.moveTo(path, X, Y);
}
}
PathHelper是僅產生正確的串,並將其插入已經創建路徑。
哦,我已經忘記了這個關閉功能。謝謝) –
我發現超時不是最好的選擇,因爲如果用戶慢慢地移動他的鼠標 - 它會產生這種「清晰度」。我已經將之前的desicion與閉合邏輯結合起來了。 –
@StasGarcia,作爲另一種選擇:也許你可以計算最後繪製的座標和當前鼠標座標之間的距離。然後,如果距離高於某個閾值,則只繪製新線。 –