美文网首页
图像合成(三)- Path.FillType

图像合成(三)- Path.FillType

作者: 如果时光不来 | 来源:发表于2022-03-28 15:57 被阅读0次

Path.FillType是用来设置图形自相交时的填充算法

Path 的方向以及封闭图形的内外判断:

path的方向

四个

后面的两个带有 INVERSE_ 前缀的,只是前两个的反色版本。

简单理解 

WINDING 是「全填充」,而 EVEN_ODD 是「交叉填充」:

深入理解

绘制图形的顺时针  逆时针 不同还会产生不同的效果。

EVEN_ODD

即 even-odd rule (奇偶原则):对于平面中的任意一点,向任意方向射出一条射线,这条射线和图形相交的次数(相交才算,相切不算哦)如果是奇数,则这个点被认为在图形内部,是要被涂色的区域;如果是偶数,则这个点被认为在图形外部,是不被涂色的区域。还以左右相交的双圆为例:

射线的方向无所谓,同一个点射向任何方向的射线,结果都是一样的,不信你可以试试。

从上图可以看出,射线每穿过图形中的一条线,内外状态就发生一次切换,这就是为什么 EVEN_ODD 是一个「交叉填充」的模式。

WINDING

即 non-zero winding rule (非零环绕数原则):首先,它需要你图形中的所有线条都是有绘制方向的:

然后,同样是从平面中的点向任意方向射出一条射线,但计算规则不一样:以 0 为初始值,对于射线和图形的所有交点,遇到每个顺时针的交点(图形从射线的左边向右穿过)把结果加 1,遇到每个逆时针的交点(图形从射线的右边向左穿过)把结果减 1,最终把所有的交点都算上,得到的结果如果不是 0,则认为这个点在图形内部,是要被涂色的区域;如果是 0,则认为这个点在图形外部,是不被涂色的区域。

和 EVEN_ODD 相同,射线的方向并不影响结果。

所以,我前面的那个「简单粗暴」的总结,对于 WINDING 来说并不完全正确:如果你所有的图形都用相同的方向来绘制,那么 WINDING 确实是一个「全填充」的规则;但如果使用不同的方向来绘制图形,结果就不一样了。

图形的方向:对于添加子图形类方法(如 Path.addCircle() Path.addRect())的方向,由方法的 dir 参数来控制,这个在前面已经讲过了;而对于画线类的方法(如 Path.lineTo() Path.arcTo())就更简单了,线的方向就是图形的方向。

所以,完整版的 EVEN_ODD 和 WINDING 的效果应该是这样的:

相关文章

  • 图像合成(三)- Path.FillType

    Path.FillType是用来设置图形自相交时的填充算法 Path 的方向以及封闭图形的内外判断: 四个 后面的...

  • MAC AE快捷键

    项目窗口 合成图像、层和素材窗口 时间布局窗口中的移动 预示 合成图像、层和素材窗口中的编辑 在合成图像窗口和时间...

  • 第二天 图像合成与渐变工具

    (一)图像合成 ** 合成:把各种图像的部分元素抠选出来,放在一个画布中,形成一个新的画面。** 抠图:把图像中某...

  • 3D全景制作-VR全景技术加盟代理

    一、720全景 vr全景是什么! 五维全景漫游图像是给人以三维立体感觉的实景720度合成图像,此图像最大的三个特点...

  • 图像风格迁移

    用一个例子来阐述基于卷积神经网络的样式迁移方法。首先,我们初始化合成图像,例如将其初始化成内容图像。该合成图像是样...

  • canvas(五) 使用图像

    使用图像 canvas 具有操作图像的能力。可以用于动态的图像合成或者作为图像的背景,以及游戏界面(Sprites...

  • 第 01 讲 光和色的关系

    Photoshop 是什么软件? Photoshop 是图像合成软件,更注重的是合成,而不是绘制、创作。 HSB ...

  • Canvas学习笔记之图像处理

    Canvas 学习笔记 -- by Damon canvas对于图像的操作能力 功能:动态的图像合成、图形的背景、...

  • SurfaceFlinger图像合成[1]

    Layer接收到新的GraphicBuffer Layer中接收到其生产者产生的GraphicBuffer后会接收...

  • SurfaceFlinger图像合成[2]

    上一篇介绍了在Vsync到来时, SF首先会处理Layer属性变化, 显示设备变化等情况,然后将mCurrentS...

网友评论

      本文标题:图像合成(三)- Path.FillType

      本文链接:https://www.haomeiwen.com/subject/hdorjrtx.html