编辑时我的答案关于 Tikz 的中心圆弧,我意识到在创建箭头时可能会出现问题:圆弧部分略微扭曲。对于“正常”圆弧,此问题会消失。
\documentclass{standalone}
\usepackage{tikz}
\def\centerarc[#1](#2)(#3:#4:#5);%
%Syntax: [draw options] (center) (initial angle:final angle:radius)
{
\draw[#1]([shift=(#3:#5)]#2) arc (#3:#4:#5);
}
\begin{document}
\begin{tikzpicture}[>=stealth]
\draw[help lines] (0,0) grid (2,2);
\centerarc[thick,<->,blue](1,1)(70:195:1cm);
\centerarc[thick,blue](1,1)(-90:25:1cm);
\draw[thin,dashed,blue] (1,1) circle (1cm);
\end{tikzpicture}
\end{document}
答案1
更好的渲染提供了使用 tikz 库arrows.meta
的帮助bending
:
\documentclass[tikz, margin=3.141592mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,bending} % <--- added
\def\centerarc[#1](#2)(#3:#4:#5);%
%Syntax: [draw options] (center) (initial angle:final angle:radius)
{
\draw[#1]([shift=(#3:#5)]#2) arc (#3:#4:#5);
}
\begin{document}
\begin{tikzpicture}[>=stealth]
\draw[help lines] (0,0) grid (2,2);
\centerarc[thick,<->, semitransparent,red](1,1)(70:195:1cm);
\centerarc[thick,blue](1,1)(-90:25:1cm);
\draw[thin,dashed,blue] (1,1) circle (1cm);
\end{tikzpicture}
\end{document}
来自 tikz 和 pgf 手册:
- “备注:arrows 和 arrows.spaced 库已被弃用。请改用/另外使用 arrows.meta,它允许您执行旧库提供的所有功能以及更多功能...“, 和
- “在路径中添加箭头时,一个常见的陷阱应该从一开始就解决:当 TikZ 将箭头定位在起点时,对于其所有计算,它只考虑添加箭头的子路径的第一段。这个“第一段”是路径的第一个直线或曲线操作(或圆弧、抛物线或类似操作);但请注意,像蛇形这样的装饰会在路径中添加许多小线段。重要的一点是,如果这个第一段非常小,即小于箭头本身,则可能会产生奇怪的结果。”