首页 > 其他 > 详细

canvas 非零环绕原则

时间:2020-07-09 22:51:48      阅读:71      评论:0      收藏:0      [点我收藏+]

文字版:

非零环绕原则:
  如果需要判断某一个区域是否需要填充颜色. 就从该区域中随机的选取一个点。

从这个点拉一条直线出来, 一定要拉到图形的外面. 此时以该点为圆心。
看穿过拉出的直线的线段. 如果是顺时针方向就记为 +1, 如果是 逆时针方向,
就记为 -1. 最终看求和的结果. 如果是 0 就不填充. 如果是 非零 就填充.

 

说实话光看文字  实在是悟不出来什么意思 可能人比较菜吧。

个人理解: 假如划线顺时针是1 逆时针是-1  首先是看你的线把区域分成几块,

每块都假设往外走出一条线,像图中黑色区域往外 就经过一条顺时针的线  那黑色部分就要填充颜色

而里面的房子往外走 要先经过逆时针的线 再经过顺时针 这样 -1 + 1 = 0 就不填充颜色。

以上。 开始我都是顺时针划线 结果一片漆黑  不过有了 beginPath() 重新画一条线就是了

 

技术分享图片

 

canvas 非零环绕原则

原文:https://www.cnblogs.com/Theia/p/13276609.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!