毛筆效果簡單思路

2021-08-25 16:28:33 字數 885 閱讀 2497

任何畫線的程式,都是先在介面上獲取若干不連續的點,然後將這些點連成線。

一些常見的筆型比較好實現,比如說鉛筆、鋼筆等等,這類筆型的線條的寬度和線條的顏色是固定的,只需要將點連線成固定顏色和固定寬度的線即可。

毛筆是比較特殊的筆型,要實現好毛筆效果,有幾點比較特殊,需要考慮。

1. 同一筆畫內,線條各處的粗細不同。

2. 同一筆畫內,線條各處的透明度不同。

3. 有筆鋒效果。

實現思路:

先說筆鋒效果。對筆鋒效果的處理,一般在一筆的開始和結尾處特殊處理,特別是橫豎筆畫。

再說線條的透明度。一般來說,下筆速度慢、下筆力量重的地方,線條顏色較深;下筆速度快、下筆力量輕的地方,線條顏色較淺。

再說線條粗細。一般來說,下筆速度慢、下筆力量重的地方,線條較粗;下筆速度快、下筆力量輕的地方,線條較窄。

實現毛筆效果,不能簡單的直接在面板上畫線,而是要計算出乙個線條區域,然後進行填充。大概演算法:

1. 根據使用者的輸入得到連續的點資訊。

2. 根據每個點之間的間隔距離,模擬計算出下筆速度。

3. 將速度與觸控壓力(觸控螢幕的程式可以得到壓力資訊)結合,模擬計算出每個點的大小。如果無法得到觸控壓力,或者不考慮壓力,則可以只用速度來模擬計算。

4. 根據每個點的座標和大小值,計算出所有需要填充的區域。

5. 模擬計算每塊填充區域的透明效果。

6. 處理每一筆的初始和結尾點,模擬筆鋒效果。

7. 根據計算好的效果,畫出所有填充的區域。

要做好毛筆效果,需要專門研究。能夠做好毛筆效果,其它筆型就簡單多了。

下面是乙個

demo

圖,執行平台為

android

,目前也僅僅是根據速度模擬計算出粗細效果,還非常簡單,但是看起來已經蠻酷的了。

毛筆效果簡單思路

任何畫線的程式,都是先在介面上獲取若干不連續的點,然後將這些點連成線。一些常見的筆型比較好實現,比如說鉛筆 鋼筆等等,這類筆型的線條的寬度和線條的顏色是固定的,只需要將點連線成固定顏色和固定寬度的線即可。毛筆是比較特殊的筆型,要實現好毛筆效果,有幾點比較特殊,需要考慮。1.同一筆畫內,線條各處的粗細...

毛筆效果簡單思路

任何畫線的程式,都是先在介面上獲取若干不連續的點,然後將這些點連成線。一些常見的筆型比較好實現,比如說鉛筆 鋼筆等等,這類筆型的線條的寬度和線條的顏色是固定的,只需要將點連線成固定顏色和固定寬度的線即可。毛筆是比較特殊的筆型,要實現好毛筆效果,有幾點比較特殊,需要考慮。1.同一筆畫內,線條各處的粗細...

毛筆效果簡單思路

任何畫線的程式,都是先在介面上獲取若干不連續的點,然後將這些點連成線。一些常見的筆型比較好實現,比如說鉛筆 鋼筆等等,這類筆型的線條的寬度和線條的顏色是固定的,只需要將點連線成固定顏色和固定寬度的線即可。毛筆是比較特殊的筆型,要實現好毛筆效果,有幾點比較特殊,需要考慮。1.同一筆畫內,線條各處的粗細...