参考\clip
答案在 TikZ 中绘制半圆,我想画一个半圆。但这种方法在这里不起作用。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (8,0);
\coordinate[label=above:C] (C) at ($(A)!.5!(B)$);
\coordinate[label=above:D] (D) at ($(A)!.5!(C)$);
\coordinate[label=above:E] (E) at ($(B)!.5!(C)$);
\draw[dashed] (A) -- (B);
\draw (D) let \p1 = ($(C) - (D)$) in circle ({veclen(\x1,\y1)});
\clip (A) rectangle (8,8);
\end{tikzpicture}
\end{document}
此外,当使用像C
、D
和这样的相对点时E
,如何在剪辑时确定矩形的终点\clip (A) rectangle (8,8);
。
答案1
如果您想画一个半圆,为什么不使用arc
?
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (8,0);
\coordinate[label=above:C] (C) at ($(A)!.5!(B)$);
\coordinate[label=above:D] (D) at ($(A)!.5!(C)$);
\coordinate[label=above:E] (E) at ($(B)!.5!(C)$);
\draw[dashed] (A) -- (B);
\draw (A) let \p1 = ($(C) - (D)$), \n1={veclen(\x1,\y1)} in arc[start angle=180, end angle=0, radius=\n1];
\end{tikzpicture}
\end{document}
答案2
放在\clip
要剪辑的物品前面。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (8,0);
\coordinate[label=above:C] (C) at ($(A)!.5!(B)$);
\coordinate[label=above:D] (D) at ($(A)!.5!(C)$);
\coordinate[label=above:E] (E) at ($(B)!.5!(C)$);
\clip (A) rectangle (8,8);
\draw[dashed] (A) -- (B);
\draw (D) let \p1 = ($(C) - (D)$) in circle ({veclen(\x1,\y1)});
\end{tikzpicture}
\end{document}
答案3
更好的是,将夹子放在瞄准镜内以确保安全。
至于剪切矩形,显然(A)是一个角,另一个角应该足够高,而不会给图像(边界框)增加空间。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (8,0);
\coordinate[label=above:C] (C) at ($(A)!.5!(B)$);
\coordinate[label=above:D] (D) at ($(A)!.5!(C)$);
\coordinate[label=above:E] (E) at ($(B)!.5!(C)$);
\draw[dashed] (A) -- (B);
\path (D) let \p1 = ($(C) - (D)$) in circle ({veclen(\x1,\y1)});% set bounding box
\begin{scope}
\clip (A) rectangle (current bounding box.north east);
\draw (D) let \p1 = ($(C) - (D)$) in circle ({veclen(\x1,\y1)});
\end{scope}
\end{tikzpicture}
\end{document}