2012-10-19 15 views

回答

3

我要說它的工作原理是這樣的:

  • 鼠標運動軌跡
  • 上捕捉鼠標移動,從保存的「老鼠標位置」捕捉到「新的鼠標位置」畫出你想要刷,迭代在一個像素的距離
  • 如果您移動鼠標太快,腳本捕獲,它將看起來像一個計算長直線(這是它看起來像穆羅正在做的)。如果你想得到真正的幻想,你可以計算從以前的鼠標位置軌跡,並繪製,而不是一條「平滑」線。

既然你指定了Javascript,你可能想畫一個canvas對象。

編輯1:

Sketch專門似乎保存鼠標移動,然後通過循環,說20個最新的鼠標移動每個鼠標的移動,並從該點到當前點繪製貝塞爾曲線。

因此,像(僞代碼)

Object mousemovements = []; 
on.mousemove(event) 
{ 
    if (mousemovements.length > 20) 
    { 
    mousemovements.removeLast(); 
    } 
    mousemovements.insertAtBeginning([ event.mouseX, event.mouseY ]); 
    for-each (movement in mousemovements) 
    { 
    drawBeziercurveFromTo(movement.mouseX, movement.mouseY, 
          event.mouseX, event.mouseY); 
    } 
} 

Jquery/Canvas DEMO based on the above pseudo code

編輯2:

我在如何 「素描」 工作定睛一看,似乎他們更新鼠標指針位置,將舊點移近新點。事情是這樣的:

This DEMO works pretty much like the sketch brush

+0

謝謝,但這個答案對我來說太簡單了。我需要一個真正的Sketch工作算法,而不僅僅是鼠標繪畫的一種方法。我已經發現Sketch在muro中的工作方式,這是一組beizer曲線。無論如何,感謝您的關注。 – liuyanghejerry

+0

增加了對「草圖」的描述。 – Jan

+1

同時添加了一個實際的演示... :) – Jan

相關問題