Seite 1 von 1
Kreisbogen zeichnen, welcher durch drei Punkte definiert ist
Verfasst: Do 14. Sep 2017, 17:01
von Patrick1990
Hallo,
ich würde gern einmal wissen, ob es möglich ist in tikz einen Kreisbogen zu zeichnen, welcher durch Anfangs- und Endkoordinate, Mittelpunkt und Winkel gekennzeichnet ist.
Ich habe schon im Internet gesucht, jedoch nichts so richtig passendes gefunden.
Vielen Dank.
Verfasst: Fr 15. Sep 2017, 07:47
von markusv
Moin.
Ausgehend von arc, was etwas umständlich zu handhaben ist, wurde
hier eine Anpassung vorgenommen, die vom Mittelpunkt ausgeht und Anfangs-, Endwinkel und Radius als Variablen besitzt. Daraus folgendes Beispiel:
\documentclass[varwidth,border=50]{standalone}
\usepackage{tikz}
\tikzset{
pics/carc/.style args={#1:#2:#3}{
code={
\draw[pic actions] (#1:#3) arc(#1:#2:#3);
}
}
}
\begin{document}
\begin{tikzpicture}
\begin{scope}
\draw[fill] (0,0) circle (0.05);
\draw (0,0) pic{carc=0:30:2} pic{carc=45:90:3};
\draw[->] (0,0) -- (2,0) node[midway,below] {$r=2$};
\draw[->] (0,0) -- (0,3) node[midway,right] {$r=3$};
\end{scope}
\end{tikzpicture}
\end{document}
Verfasst: Fr 15. Sep 2017, 09:43
von Patrick1990
Danke, jedoch möchte ich nicht den Anfangs- und Endwinkel, sondern die Anfangs- und Endloordinaten im kartesischen Koordinatensystem eingeben können.
Beispiel:
Start: (1,0)
Ende: (0,1)
Mittelpunkt: (0,0)
Winkel: 90deg
Anhand dieser Eingaben soll nun der Kreisbogen gezeichnet werden.
Re: Kreisbogen zeichnen, welcher durch drei Punkte definiert
Verfasst: Fr 15. Sep 2017, 10:30
von esdd
Patrick1990 hat geschrieben:
ich würde gern einmal wissen, ob es möglich ist in tikz einen Kreisbogen zu zeichnen, welcher durch Anfangs- und Endkoordinate, Mittelpunkt und Winkel gekennzeichnet ist.
Wenn Du alle vier Angaben hast, dann ist der Kreisbogen überbestimmt.
Kennst du tatsächlich Anfangs- und Endkoordinate sowie Mittelpunkt, dann ginge beispielsweise:
\documentclass[margin=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,angles}
\tikzset{
punkt/.style={circle,fill,inner sep=.5pt}
}
\begin{document}
\begin{tikzpicture}
\path
(0,0)coordinate(M)% Mittelpunkt
(1,0)coordinate(A)% Anfangskoordinate
(0,1)coordinate(B)% Endkoordinate
;
\path
let
\p1=(M), \p2=(A),
\n1={veclen({\x2-\x1},{\y2-\y1})}
in
pic[draw=red,angle radius=\n1]{angle=A--M--B}
;
\draw[dashed](M)--(A) (M)--(B);
\foreach \p in {A,B,M}\node[punkt] at (\p){};
\end{tikzpicture}
\end{document}
Beispiel für Mittelpunkt, Anfangskoordinate und positiven Winkel:
\documentclass[margin=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,angles}
\tikzset{
punkt/.style={circle,fill,inner sep=.5pt}
}
\begin{document}
\begin{tikzpicture}
\newcommand\arcradius{}
\newcommand\winkel{145}% Beispiel nur für Winkel zwischen 0° und 359° gültig
\path
(1,2)coordinate(M)% Mittelpunkt
(-2,3)coordinate(A)% Anfangskoordinate
;
\path[overlay]
let
\p1=(M), \p2=(A),
\n1={veclen({\x2-\x1},{\y2-\y1})},
\n2={2*\n1*abs(sin(\winkel/2))}
in
\pgfextra{\xdef\arcradius{\n1}}
(\p1)--(\p2)--([turn]{90+\winkel/2}:\n2)coordinate(temp)
($(M)!\n1!(temp)$)coordinate(B)
;
\path pic[draw=red,angle radius=\arcradius]{angle=A--M--B};
\draw[dashed](M)--(A) (M)--(B);
\path
($(A)!.5!(B)$)--(M)node[punkt]{}--([turn=0]0:8pt)node{M}% müsste aber bei Winkeln von ca. 180° anders platziert werden
foreach \p in {A,B}
{(M)--(\p)node[punkt]{}--([turn=0]0:8pt)node{\p}}
;
\end{tikzpicture}
\end{document}
Verfasst: Fr 15. Sep 2017, 16:50
von Patrick1990
Vielen Dank, ich werde es einmal testen.