任何畫線的程序,都是先在界面上獲取若干不連續的點,然后將這些點連成線。
一些常見的筆型比較好實現,比如說鉛筆、鋼筆等等,這類筆型的線條的寬度和線條的顏色是固定的,只需要將點連接成固定顏色和固定寬度的線即可。
毛筆是比較特殊的筆型,要實現好毛筆效果,有幾點比較特殊,需要考慮。
1. 同一筆畫內,線條各處的粗細不同。
2. 同一筆畫內,線條各處的透明度不同。
3. 有筆鋒效果。
實現思路:
先說筆鋒效果。對筆鋒效果的處理,一般在一筆的開始和結尾處特殊處理,特別是橫豎筆畫。
再說線條的透明度。一般來說,下筆速度慢、下筆力量重的地方,線條顏色較深;下筆速度快、下筆力量輕的地方,線條顏色較淺。
再說線條粗細。一般來說,下筆速度慢、下筆力量重的地方,線條較粗;下筆速度快、下筆力量輕的地方,線條較窄。
實現毛筆效果,不能簡單的直接在面板上畫線,而是要計算出一個線條區域,然后進行填充。大概算法:
1. 根據用戶的輸入得到連續的點信息。
2. 根據每個點之間的間隔距離,模擬計算出下筆速度。
3. 將速度與觸摸壓力(觸摸屏的程序可以得到壓力信息)結合,模擬計算出每個點的大小。如果無法得到觸摸壓力,或者不考慮壓力,則可以只用速度來模擬計算。
4. 根據每個點的坐標和大小值,計算出所有需要填充的區域。
5. 模擬計算每塊填充區域的透明效果。
6. 處理每一筆的初始和結尾點,模擬筆鋒效果。
7. 根據計算好的效果,畫出所有填充的區域。
要做好毛筆效果,需要專門研究。能夠做好毛筆效果,其它筆型就簡單多了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
