von esdd » Fr 15. Sep 2017, 10:30
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}
[quote="Patrick1990"]
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.
[/quote]
Wenn Du alle vier Angaben hast, dann ist der Kreisbogen überbestimmt.
Kennst du tatsächlich Anfangs- und Endkoordinate sowie Mittelpunkt, dann ginge beispielsweise:
[code]\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}[/code]
Beispiel für Mittelpunkt, Anfangskoordinate und positiven Winkel:
[code]\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}[/code]