使用 pgf 绘制圆弧

使用 pgf 绘制圆弧

我想使用 pgf 绘制一个具有给定中心的圆弧(圆的一部分)。我不知道中心的确切坐标,因为它是通过其他几何对象的交点获得的。所需的中心有名称,但没有已知坐标。我该怎么做?

基本上,我想修改以下形式的指令

 \node (H) [name path=H, draw, circle through=(A')] at (E) {}; 

只产生圆的一部分。

答案1

您可以使用arcTi 命令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) 您可以使用选项deltadelta=20表示圆弧的末端与中心成 40 度角;

d) 最后一种可能性更微妙。\tkzDrawArc(O,D)(E)画一个以 O 为中心穿过D半线并停止的圆弧[OE)

在此处输入图片描述

相关内容