找回密码
 快速注册
搜索
查看: 1041|回复: 0

tikz 的 line cap 与 bounding box

[复制链接]

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2018-10-1 03:14 |阅读模式
刚才无意中发现的。

首先,加载了 tikz 后,代码:
\fboxsep=0pt\fbox{\tikz{\draw(0,0)--(2,1);}}
效果谁都知道:
0.png

但如果再画一条粗的线,比如:
\fboxsep=0pt\fbox{\tikz{\draw[line width=1cm,red](0,0)--(2,1);\draw(0,0)--(2,1);}}
效果估计你意想不到:
1.png

如果将粗线的线帽(line cap)设为 rect:
\fboxsep=0pt\fbox{\tikz{\draw[line width=1cm,red,line cap=rect](0,0)--(2,1);\draw(0,0)--(2,1);}}
更加想不到:
2.png

那它的边界框(bounding box)到底是根据什么得出的?

这回你应该猜得到了,因为还有一种线帽没试,那就是 round:
\fboxsep=0pt\fbox{\tikz{\draw[line width=1cm,red,line cap=round](0,0)--(2,1);\draw(0,0)--(2,1);}}
效果:
3.png

换句话说,无论线帽如何,边界框总是按照 round 来算的。

所以其实最开头的那图也并不是刚好包住的。

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 12:00

Powered by Discuz!

× 快速回复 返回顶部 返回列表