我想使用 pgf 绘制一个具有给定中心的圆弧(圆的一部分)。我不知道中心的确切坐标,因为它是通过其他几何对象的交点获得的。所需的中心有名称,但没有已知坐标。我该怎么做?
基本上,我想修改以下形式的指令
\node (H) [name path=H, draw, circle through=(A')] at (E) {};
只产生圆的一部分。
答案1
您可以使用arc
Ti 命令钾z,像这样:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\coordinate (O) at (0,0); % Your coordinate name
\draw (O) -- ++(0:1) arc (0:150:1); % start:end:radius
\end{tikzpicture}
\end{document}
结果是这样的
一般来说你的最后一条命令是
\draw (center) -- ++(start:radius) arc(start:end:radius) -- (center);
答案2
我不太明白这个问题。我假设你想创建一个以 E 为中心的圆形节点,它经过 A,但只绘制一部分!
我建议以下解决方案
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\usetikzlibrary{through}
\usepackage{SIunitx}
\begin{document}
\begin{tikzpicture}
\node[label=A] (A) at (1,1) {+};
\node[label=E] (E) at (0,2){+};
\node (H) [name path=H, circle through=(A)] at (E) {};
\draw[red,thick]
let
\p1=(E.center), \p2=(A), \n1={veclen(\y2-\y1,\x2-\y1)}
in
(H.45) arc (45:180: \n1);
\draw (H) -- ++(3,4);
\draw (H) -- ++(-3,5);
\end{tikzpicture}
\end{document}
答案3
1)首先,如果中心有名称,那么您就可以知道它的坐标:
102.6 提取坐标 有两个命令可用于“提取”坐标的 x 或 y 坐标。
\pgfextractx{\pgf@x}{\pgfpointanchor{E}{center}} \pgfextracty{\pgf@y}{\pgfpointanchor{E}{center}}
2)tkz-euclide
您拥有:
\documentclass{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\coordinate[label=$O$] (O) at (3,1);
\coordinate [label=$A$](A) at (1,5);
\coordinate [label=$B$](B) at (2,4);
\coordinate [label=$C$](C) at (3,2);
\coordinate [label=$D$](D) at (5,0);
\coordinate [label=$E$](E) at (5,1);
\tkzCompass[thick,blue](O,A)
\tkzCompass[thick,red,delta=20](O,B)
\tkzCompass[thick,orange,length=2](O,C)
\tkzDrawArc[thick,brown](O,D)(E)
\foreach \point in {A,...,E,O}
\fill [black,opacity=.5] (\point) circle (1pt);
\end{tikzpicture}
\end{document}
a) 宏\tkzCompass
可以绘制一个以点为圆心的圆弧。不使用选项(可以使用 TikZ 的选项)时圆弧的长度为 1 厘米;
b) 您可以使用选项length
来更改默认值length =2 for 2cm
;
c) 您可以使用选项delta
。delta=20
表示圆弧的末端与中心成 40 度角;
d) 最后一种可能性更微妙。\tkzDrawArc(O,D)(E)
画一个以 O 为中心穿过D
半线并停止的圆弧[OE)
。