Forgot password?
 Create new account
View 1237|Reply 0

tikz 的 line cap 与 bounding box

[Copy link]

700

Threads

110K

Posts

910K

Credits

Credits
94177
QQ

Show all posts

kuing Posted at 2018-10-1 03:14:48 |Read mode
刚才无意中发现的。

首先,加载了 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 来算的。

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

手机版Mobile version|Leisure Math Forum

2025-4-21 01:33 GMT+8

Powered by Discuz!

× Quick Reply To Top Return to the list