一尘不染

填充路径如何呈现?

algorithm

矢量图形中用于渲染填充路径的标准算法是什么?

我不仅对笔触的渲染过程感兴趣,还想知道形状的填充方式-如何确定给定点在路径的内部还是外部(我相信甚至可以指定内部和外部的规则)并不是一件简单的事情)。


阅读 304

收藏
2020-07-28

共1个答案

一尘不染

  1. 查找轮廓(周长为多边形)

这个我想你已经有

  1. 三角剖分(或切成凸多边形)

有很多方法,例如:

* 夹耳式 
* 德劳内

参见Wiki多边形三角剖分

  1. 填充凸三角形/多边形

这很容易使用

* gfx库,例如OpenGL,DirectX,... 
* 像GDI一样的api
* 像[如何栅格化凸多边形](https://stackoverflow.com/a/19078088/2521214)一样自行[栅格化](https://stackoverflow.com/a/19078088/2521214)
  1. 样式

这些东西比较复杂,然后听起来像是第一次听到。对于:

1. **轮廓宽度** `pen,stroke`

通过转移出来或者转化大纲多边形。

2. **轮廓样式** `pen,stroke`

全面,破折号,点,点点,…更多信息见本

3. **填充样式** `brush`

就像孵化一样,这是最复杂的。它涉及到重多边形的调整,但类似,但是要比 轮廓宽度
困难得多。有些样式比较简单,有些极端复杂,例如等距线条填充简单loop + intersection + inside polygon testwill

2020-07-28