Mir geht es darum die Bahn eines Punktes in Momentaufnahmen aufzuzeichnen und die Bahn anhand einer Koordinatenliste einzuzeichnen. Ich erhalte die Punkte, aber keine Bahn.

Dabei habe ich für die Liste diese Methode verwendet: https://texwelt.de/wissen/fragen/25323/tikz-variablen-ausdruck-mit-punktkoordinaten-plotten

wobei ich \protected@xdef zu \xdef ändern musste.

Irgendetwas scheint nicht zu stimmen. Wo liegt mein Fehler?

alt text

\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{intersections}
\usepackage{amsmath, amssymb}

\begin{document}
\newcommand{\List}{}% reserve name 
\def\Range{0,20,40,60}

\foreach \w in \Range{%%%%%%%%%%%%%%%
\pgfmathsetmacro\Winkel{\w} % 
\begin{tikzpicture}[]
\coordinate[] (M) at (0,0);

\draw[] (M) circle[radius=3];
\draw[name path=kreis] (M) circle[radius=1.4];

\draw[name path=zeiger] (M) -- (90-\Winkel:3);

% Create List of Coordinates
\let\List=\empty% create list
\makeatletter
%\foreach \t  in \Range
%{
\path[name intersections={of=kreis and zeiger, name=S}] ;
\coordinate[label=left:$S_{\w}$] (X-\w) at (S-1); 
\pgfmathsetmacro\temp{"(X-\w)"}%
  \ifx\empty\List{} \xdef\List{\temp}%
  \else \xdef\List{\List \temp}%
  \fi
%}
\makeatother

\draw[red] plot[mark=*] coordinates{\List};
\node[anchor=north west, text width=6 cm] at (-3,-3){\List};
\end{tikzpicture}
}%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{document}

gefragt 17 Aug '19, 11:56

cis's gravatar image

cis
9.5k92459491
Akzeptiert-Rate: 29%

bearbeitet 17 Aug '19, 11:59


\let\List=\empty muss vor \foreach stehen, sonst wird in jeder Iteration die Liste wieder geleert.

Permanenter link

beantwortet 17 Aug '19, 13:35

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

Aja, das hilft mir gut weiter.

(18 Aug '19, 12:16) cis
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×730
×21
×6

gestellte Frage: 17 Aug '19, 11:56

Frage wurde gesehen: 4,060 Mal

zuletzt geändert: 18 Aug '19, 12:16