免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 发帖
回复 11# kuing 谢谢kuing

TOP

继续,来试一下仿照 11# 的方法做一个弧标记:
  1. \newlength\hur%弧半径
  2. \newlength\huj%字母与弧的间距
  3. \hur=7pt
  4. \huj=5pt
  5. \newcommand\hubj[5][]{%
  6. \draw[#1] let \p1=(#2),\p2=(#4),\p0=(#3),
  7. \n1={atan2(\y1-\y0,\x1-\x0)},
  8. \n2={atan2(\y2-\y0,\x2-\x0)},
  9. \n3={Mod(\n2-\n1,360)} in
  10. (#3)++(\n1:\hur)arc[start angle=\n1,delta angle=\n3,radius=\hur]
  11. (#3)+(\n1+0.5*\n3:\hur+\huj) node {$#5$};
  12. }
复制代码
用的时候要注意点的顺序,我的设计是让它总是逆时针。
举个栗子:
  1. \tikz{
  2. \coordinate[label=right:$A$] (A) at (2,0);
  3. \coordinate[label=below left:$B$] (B) at (1.75,1.75);
  4. \coordinate[label=left:$C$] (C) at (0,1.5);
  5. \draw (A)--(B)--(C)--cycle;
  6. \hubj ACBx
  7. \hubj BACy
  8. \hubj[red,thick]ABCz
  9. }
复制代码
效果是:
QQ截图20190320170436.png

特别需要指出的是 \n3={Mod(\n2-\n1,360)} 这一句,为什么要 mod 360?不 mod 会出啥问题?大家不妨想想。

TOP

将 11# 及楼上的整合在一起,写个测试文档: zjbj_hubj.tex (1.72 KB) 其中后面是随机点测试。

我是不是太闲了哩?
$\href{https://kuingggg.github.io/}{\text{About Me}}$

TOP

返回列表 回复 发帖