0
deviantART muro有一套很棒的繪畫工具。我非常好奇,如何在算術上實現這些畫筆,如Sketch和Paintbrush?如何實現素描刷,就像deviantART muro一樣?
使用任何正常的編程語言來解釋是好的,但我更喜歡C++或JavaScript。我認爲它比閱讀他們的JS源代碼更好。
deviantART muro有一套很棒的繪畫工具。我非常好奇,如何在算術上實現這些畫筆,如Sketch和Paintbrush?如何實現素描刷,就像deviantART muro一樣?
使用任何正常的編程語言來解釋是好的,但我更喜歡C++或JavaScript。我認爲它比閱讀他們的JS源代碼更好。
我要說它的工作原理是這樣的:
既然你指定了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:
我在如何 「素描」 工作定睛一看,似乎他們更新鼠標指針位置,將舊點移近新點。事情是這樣的:
謝謝,但這個答案對我來說太簡單了。我需要一個真正的Sketch工作算法,而不僅僅是鼠標繪畫的一種方法。我已經發現Sketch在muro中的工作方式,這是一組beizer曲線。無論如何,感謝您的關注。 – liuyanghejerry
增加了對「草圖」的描述。 – Jan
同時添加了一個實際的演示... :) – Jan