Even it contains hard-coding (as you see) in some part, it looks fine, I think.
Things to do - refresh canvas every frame
- how can it work for more than 3 points?
- how can I set points of mask? sort(leftmost or something) & connect points every frame