关于 TikZ 学习笔记中对 clip 选项作用的理解

2020-03-11 18:04发布

以最新版本[TikZ&PGFnote-3-1-4b](https://www.latexstudio.net/archives/51804.html TikZ&PGFnote-3-1-4b.pdf)为...

以最新版本[TikZ&PGFnote-3-1-4b](https://www.latexstudio.net/archives/51804.html "TikZ&PGFnote-3-1-4b.pdf")为例。 第85页描述剪切路径指的是“被剪刀裁剪”,第86页则补充道多个剪切路径的效果会被“累计”,同时以举出下例。 ![](https://pics.latexstudio.net/data/images/202003/e78107ce999dc67.png) 按“剪刀裁剪”的理解,第4行`\path[clip] (0,0) circle (1cm);`表示把左下角的圆剪下来,第5行`\path[clip] (1,0) circle (1cm);`表示把右下角的圆剪下来。我自己也实际剪了一下,这两次累计的剪刀操作将画布分割成4个部分,如下图。 ![](https://pics.latexstudio.net/data/images/202003/3ff4d834f1cd6c5.png) 第6行`\fill[red] (60:1)circle(1cm);`表示画了上面的圆并填充红色。如下图。 ![](https://pics.latexstudio.net/data/images/202003/5aaf5f817568526.png) ![](https://pics.latexstudio.net/data/images/202003/de9ce55268ce406.png) 我想问的问题是,大家都是平等地被剪下来的,凭什么就只填充纸片③?只填充纸片①不行么? 我用实际画画的过程联想到,这可能跟填充的起始点位置有关。画画填充颜色时总要有一个下笔点,然后就开始疯狂涂涂涂直至涂满,如果我把大纸剪成4张纸片取出来,那我就只能涂满我下笔的时候选中的那张纸片。所以我猜想,会不会是`\fill`填充命令默认的下笔点刚好在纸片③内,所以导致只有纸片③被填充了。所以只要修改一下某个我不知道的下笔点选项的值,就可以实现只填充纸片①②④了。 这个想法对么?另外,要实现填充纸片①②④的话,具体怎么操作呢?
2条回答
咸菜的味道
2020-03-12 23:17
你这究根问底的精神头令人佩服! 我有时候也像你这样,常常在一个问题上纠结,后来我觉,这样做的学习效率不算高。令初学者困惑的原因可能很多,例如,手册或者其他资料的解释本身不适合初学者的理解范围,因为手册基本上是用自然语言来解释程序处理的,就像用自然语言难以解释数学过程一样,难免令初学者感到困惑。 我建议尽量通读手册,英文原文,不要太依赖别人的资料,在一个问题上不要太纠结,多向别人请教。读得越多,问的越多,理解就越多。比如你提的这个问题,如果你往后读到“非零规则”、“奇偶规则”,应该能更好地理解颜色是如何填充的。 当你理解了,基本会用了,再去读源代码。当你看明白一段源代码后,你就知道,用自然语言解释一段程序的处理过程是多么不容易。 再说你的问题,我是这么理解的,TikZ 一般不使用“画布”这个说法(有画布变换这个说法),因为 TikZ 不会先设置一个画布,然后在画布上画图,它只是收集坐标点和坐标点之间的那些构建路径的“手段”,所以你问题中第一个图片的④可以不考虑。 如果没有 clip, fill, 你问题中的 ①、②、③都可以不考虑,因为这些内部区域不是构建路径的坐标点,也不是构建路径的“手段”。在使用 clip, fill 后,才需要判断路径的内部区域,判断的依据是非零规则或者奇偶规则。 如果你想填充④,就得先构建一个包含④的路径,然后再想办法填充它。 建议你先去读一下关于非零规则、奇偶规则的内容。

一周热门 更多>