我正在尝试找到圆弧的终点坐标。
目前,我正在使用以下一组命令行来绘制图形,但我想简化它。如果我找出坐标,就会发生这种情况C
。有什么建议吗?
命令行:-
\draw(0.3,-3) coordinate(A) arc [radius=4.7, start angle=180, end angle=225] coordinate(B);
\draw(9.7,-3) coordinate(D) arc [radius=4.7, start angle=360, end angle=315] coordinate(C);
\filldraw[fill=red, draw=red] (A) arc [radius=4.7, start angle=180, end angle=225] -- (C) arc [radius=4.7, start angle=315, end angle=360] --(A);
答案1
您可以先构建坐标C
,然后\filldraw
一次性构建整个图形。
\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\path
(9.7,-3) coordinate(D)
arc [radius=4.7, start angle=360, end angle=315] coordinate(C);
\filldraw[fill=red, draw=red]
(C)
arc [radius=4.7, start angle=315, end angle=360]
-- (0.3,-3) coordinate(A)
arc [radius=4.7, start angle=180, end angle=225] coordinate(B);
\end{tikzpicture}
\end{document}
或者您可以计算的坐标(C)
。
\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\newcommand\R{4.7}% radius
\newcommand\A{45}% angle
\filldraw[fill=red, draw=red]
(0.3,-3) coordinate (A)
arc [radius=\R, start angle=180, end angle={180+\A}] coordinate (B)
-- ({5+\R*cos(\A)},{-3-\R*sin(\A)}) coordinate (C)
arc [radius=\R, start angle={360-\A}, end angle=360] coordinate (D);
\end{tikzpicture}
\end{document}
或者您可以让 tikz 计算坐标。
\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\newcommand\R{4.7}% radius
\newcommand\A{45}% angle
\coordinate (M) at (5,-3);
\coordinate (A) at ($(M)+(180:\R)$);
\coordinate (B) at ($(M)+({180+\A}:\R)$);
\coordinate (C) at ($(M)+({360-\A}:\R)$);
\coordinate (D) at ($(M)+(360:\R)$);
\filldraw[fill=red, draw=red]
(A) arc [radius=\R, start angle=180, end angle={180+\A}]
-- (C) arc [radius=\R, start angle={360-\A}, end angle=360];
\end{tikzpicture}
\end{document}
答案2
我的三角学知识不允许我计算图形的高度,但如果你知道如何做,你可以用它来剪切一个圆圈:
\documentclass[11pt]{article}
\usepackage[a4paper, margin=1in]{geometry}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\begin{scope}
\clip (0.3,-3) rectangle (9.7,-6.34);
\fill[red] (5,-3) circle(4.7);
\end{scope}
\end{tikzpicture}
\end{document}
更新 1:
gernot
刷新了我的三角学知识并提供了解决方案:
\documentclass[11pt]{article}
\usepackage[a4paper, margin=1in]{geometry}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\begin{scope}
%radius*sin(225-180) = 4.7/sqrt(2) = 3,3234018
\clip (0.3,-3) rectangle (9.7,-6.323);
\fill[red] (5,-3) circle(4.7);
\end{scope}
\end{tikzpicture}
\end{document}
更新 2:
然后StefanH
让TikZ calc
我们用库来计算高度:
\documentclass[11pt]{article}
\usepackage[a4paper, margin=1in]{geometry}
\usepackage{tikz}
\usetikzlibrary{calc} %<---- Load calc library
\begin{document}
\begin{tikzpicture}
\begin{scope}
\clip (0.3,-3) rectangle ({(9.7,-3)} |- {$(5,-3)+(315:4.7)$});
\fill[red] (5,-3) circle(4.7);
\end{scope}
\end{tikzpicture}
\end{document}