以最新版本[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 回答2

0
附录:下面是我裁剪的示例,本来想测试用多条直线裁剪的效果的,但居然发现用直线路径裁剪之后,并不能被用于后续填充,后来改成曲线裁剪之后就发现,原来并不能理解成“用剪刀裁剪”,而应该理解成“闭合路径内部空间的交集” ```tex \documentclass[tikz]{standalone} \newcommand{\drawY}[1]{% \draw plot (\x,#1); \draw plot (\x,-#1); \draw (0,0) circle (1); \fill[red] plot (\x,#1); \clip plot (\x,#1); \fill[green] (0,0) circle (1); } \begin{document} %第1页 y=±x和单位圆 \begin{tikzpicture}[domain=-1:1] \drawY{\x} \end{tikzpicture} %第2页 y=±x^2和单位圆 \begin{tikzpicture}[domain=-1:1] \drawY{\x*\x} \end{tikzpicture} %第3页 y=±x^3和单位圆 \begin{tikzpicture}[domain=-1:1] \drawY{\x*\x*\x} \end{tikzpicture} %第4页 y=±abs(x)和单位圆 \begin{tikzpicture}[domain=-1:1] \drawY{{abs(\x)}} \end{tikzpicture} \end{document} ``` ![](https://pics.latexstudio.net/data/images/202003/3883dc84fe889d0.png) 用Adobe Acrobat DC仔细放大图1的细节处能发现,原来图1也是有填充的,只是填充到了直线围成空间中,更进一步佐证了clip操作应理解为“闭合路径内部空间的交集”,而非“被剪刀裁剪”。 ![](https://pics.latexstudio.net/data/images/202003/aa2e123d536f1f6.png) ![](https://pics.latexstudio.net/data/images/202003/88375612adab767.png)
0
你这究根问底的精神头令人佩服! 我有时候也像你这样,常常在一个问题上纠结,后来我觉,这样做的学习效率不算高。令初学者困惑的原因可能很多,例如,手册或者其他资料的解释本身不适合初学者的理解范围,因为手册基本上是用自然语言来解释程序处理的,就像用自然语言难以解释数学过程一样,难免令初学者感到困惑。 我建议尽量通读手册,英文原文,不要太依赖别人的资料,在一个问题上不要太纠结,多向别人请教。读得越多,问的越多,理解就越多。比如你提的这个问题,如果你往后读到“非零规则”、“奇偶规则”,应该能更好地理解颜色是如何填充的。 当你理解了,基本会用了,再去读源代码。当你看明白一段源代码后,你就知道,用自然语言解释一段程序的处理过程是多么不容易。 再说你的问题,我是这么理解的,TikZ 一般不使用“画布”这个说法(有画布变换这个说法),因为 TikZ 不会先设置一个画布,然后在画布上画图,它只是收集坐标点和坐标点之间的那些构建路径的“手段”,所以你问题中第一个图片的④可以不考虑。 如果没有 clip, fill, 你问题中的 ①、②、③都可以不考虑,因为这些内部区域不是构建路径的坐标点,也不是构建路径的“手段”。在使用 clip, fill 后,才需要判断路径的内部区域,判断的依据是非零规则或者奇偶规则。 如果你想填充④,就得先构建一个包含④的路径,然后再想办法填充它。 建议你先去读一下关于非零规则、奇偶规则的内容。

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。