Die roten Strecken stehen jeweils senkrecht auf einer schwarzen.
(Es kommt richtig raus mit dem rechten Winkel, aber die Syntax ist etwas komisch geraten... vielleicht geht es besser?)

Wie erreiche ich, dass die roten Strecken alle genau die Länge 1 haben?

alt text

Öffne in Overleaf
\documentclass[border=5pt, tikz]{standalone}
\usepackage{tikz, amsmath}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}[
nodes={fill=red,circle, inner sep=1pt,}
]
\node [label=left:$A$] (A) at (0,0) {};
\node [label=right:$B$] (B) at (1,0) {};
\draw (A) -- (B);

\node [label=above:$C$] (C) at ($(B)!1!-90:(A)$) {};
\draw[red] (B) -- (C);
\draw (A) -- (C);

\node [label=above:$D$] (D) at ($(C)!1!-90:(A)$) {};
\draw[red] (C) -- (D);
\draw (A) -- (D);

\node [label=above:$E$] (E) at ($(D)!1!-90:(A)$) {};
\draw[red] (D) -- (E);
\draw (A) -- (E);

\end{tikzpicture}
\end{document}

gefragt 07 Nov, 15:50

cis's gravatar image

cis
8.3k16171267
Akzeptiert: 68%

bearbeitet 07 Nov, 15:51


Da die Länge 1 in dem Beispiel 1cm entspricht, könntest Du

Öffne in Overleaf
($(C)!1!-90:(A)$)

in

Öffne in Overleaf
($(C)!1cm!-90:(A)$)

ändern. Analog für die anderen Punkte, die mit der gleichen Syntax konstruiert wurden.

Alternativ kannst Du die Option turn für eine relative Drehung zum Pfad verwenden. Das geht dann auch ohne die Bibliothek calc:

Öffne in Overleaf
\documentclass[border=5pt, tikz]{standalone}
\begin{document}
\begin{tikzpicture}

\path [nodes={fill=red,circle, inner sep=1pt}]
  (0,0) node [label=left:$A$] (A) {}
  (1,0) node [label=right:$B$] (B) {}
  +(90:1) node [label=above:$C$] (C) {}
%
  (A) -- (C)
      -- ([turn]90:1) node [label=above:$D$] (D) {}
  (A) -- (D)
      -- ([turn]90:1) node [label=above:$E$] (E) {} 
;

\draw (A) foreach \p in {B,C,D,E} {edge (\p)};
\draw[red] (B) -- (C) -- (D) -- (E);

\end{tikzpicture}
\end{document}

Ergebnis in beiden Fällen:

alt text

Permanenter link

beantwortet 07 Nov, 17:22

esdd's gravatar image

esdd
16.9k83854

bearbeitet 07 Nov, 17:31

Aja, sehr gut. Das !1cm! hat mir gerade gefehlt.

(07 Nov, 18:25) cis

Mit \usetikzlibrary{intersections} kann ich es lösen:

alt text

Öffne in Overleaf
\documentclass[border=5pt, tikz]{standalone}
\usepackage{tikz, amsmath}
\usetikzlibrary{calc}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}[
nodes={fill=red,circle, inner sep=1pt,},
Hilfe/.style={
gray, draw,
nodes={fill=gray,circle, inner sep=1pt,},
}
]
\node [label=left:$A$] (A) at (0,0) {};
\node [label=right:$B$] (B) at (1,0) {};
\draw (A) -- (B);
%\draw (B) circle[radius=1];

\node [label=above:$C$] (C) at ($(B)!1!-90:(A)$) {};
\draw[red] (B) -- (C);
\draw (A) -- (C);

\node [Hilfe, label=above:$Dr$] (Dr) at ($(C)!1!-90:(A)$) {};
\path[Hilfe, name path=Strecke] (C) -- (Dr);
\path[Hilfe, name path=Kreis] (C) circle[radius=1];
\draw [red, name intersections={of=Strecke and Kreis}]
(C) -- (intersection-1) coordinate (D);
\draw (A) -- (D) node[label=$D$]{}; % Radius

\node [Hilfe, label=above:$Er$] (Er) at ($(D)!1!-90:(A)$) {};
\draw[name path=Strecke] (D) -- (Er);
\draw[Hilfe, name path=Kreis] (D) circle[radius=1];
\draw [red, name intersections={of=Strecke and Kreis}]
(D) -- (intersection-1) coordinate (E);
\draw (A) -- (E) node[label=$E$]{}; % Radius

\node [Hilfe, label=above:$Fr$] (Fr) at ($(E)!1!-90:(A)$) {};
\draw[name path=Strecke] (E) -- (Fr);
\draw[Hilfe, name path=Kreis] (E) circle[radius=1];
\draw [red, name intersections={of=Strecke and Kreis}]
(E) -- (intersection-1) coordinate (F);
\draw (A) -- (F) node[label=$F$]{}; % Radius

\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 07 Nov, 17:29

cis's gravatar image

cis
8.3k16171267

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×623
×13

Frage gestellt: 07 Nov, 15:50

Frage wurde angeschaut: 95 Mal

Zuletzt aktualisiert: 07 Nov, 18:25