TikZ -- Gerade (nicht Strecke) durch zwei Punkte.

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: TikZ -- Gerade (nicht Strecke) durch zwei Punkte.

von esdd » Do 7. Jul 2011, 11:42

Hallo,

der Befehl ist neben vielen anderen in der Doku erklärt. Schau mal unter VI Mathematical and Oject-Oriented Engines nach.

\pgfmathsetmacro{<macro>}{<mathematischer ausdruck>} definiert <macro> als Wert des <mathematischen ausdrucks>.

Gruß
Elke

von michl1211 » Do 7. Jul 2011, 10:55

Hallo,

vielen Dank erstmal das sind wirklich schöne Makros, die Du mir da gebaut hast, mit denen sich prima arbeiten lässt. Erklärst Du mir bitte nich, was der Befehl \pgfmathsetmacro macht? Vielleicht schaffe ich es dann den nächsten Befehl selbst zu bauen. ;)

Gruß

von esdd » Do 7. Jul 2011, 10:20

Hallo,

wenn ich nichts übersehen habe, dann ist das Beispiel auch nicht auf deinen Wunsch übertragbar. Dort wird lediglich von einem bestimmten Punkt ausgehend eine Tangente an eine Node gezeichnet, die auch noch kreisförmig sein muss. Du willst ja aber eine Tangente an einen vorgegebenen Punkt einer Funktion zeichnen.
Deshalb musst du die Ableitung schon selbst bestimmen, was in dem Fall ja nicht schwierig ist.

Hier ein Vorschlag bei bekannter Ableitungsfunktion:
\documentclass{scrartcl}
\usepackage{tikz}

\newcommand\Tangente[6][]{%
  \pgfmathsetmacro\Px{#2};
  \pgfmathsetmacro\Py{#3};
  \coordinate(Punkt)at(\Px,\Py);
  \pgfmathsetmacro\n{\Py-#4*\Px}
  \draw[#1] plot[domain=#5:#6] (\x,{#4*\x+\n});
}
% Syntax:
% \Tangente[optionen für plot, z.B. farbe]{x koordinate von P}{y koordinate von P}{anstieg in P}{anfang plotbereich}{ende plotbereich}
% für die y Koordinate und den Anstieg kann auch eine Formel angegeben werden,
% wenn auf die zugehörige x Koordinate zugegriffen werden soll, muss für diese \Px eingesetzt werden

\begin{document}

\begin{tikzpicture}

%% --- Achsen und Hilfslinien: 
  \draw[-stealth] (-.10,0.00) -- (10.4,0.00) node[right] {$x$};           % x-Achse 
  \draw[-stealth] (0.00,-.10) -- (0.00,5.00) node[above] {$f(x)$};        % y-Achse   

%% --- Funktion
  \draw[line width = 0.8pt] plot[domain=0:10, samples=200] (\x,{2*sin(0.63*\x r) + 1.5});
%% --- Tangente für x=0.5
  \Tangente[green]{0.5}{2*sin(0.63*\Px r) + 1.5}{1.26*cos(0.63*\Px r)}{0}{5}
  \draw[help lines] (Punkt) -- (Punkt|-0,-0.08) node[below,black] {$a$}; 
  \draw[help lines] (Punkt) -- (Punkt-|-0.08,0) node[left,black]  {$f(a)$};
  \fill[black, opacity=.8](Punkt) circle (1.75pt);
%% --- Tangente für x=1.5
  \Tangente[orange,dashed]{1.5}{2*sin(0.63*\Px r) + 1.5}{1.26*cos(0.63*\Px r)}{0}{5}
  \draw[help lines] (Punkt) -- (Punkt|-0,-0.08) node[below,black] {$b$}; 
  \draw[help lines] (Punkt) -- (Punkt-|-0.08,0) node[left,black]  {$f(b)$};
  \fill[black, opacity=.8](Punkt) circle (1.75pt);
\end{tikzpicture} 

\end{document}
Gruß
Elke

von michl1211 » Do 7. Jul 2011, 01:20

Hallo,

wow! Vielen vielen Lieben Dank! - ich habe noch eine Frage. Durch den hier gegebenen Punkt (a) möchte ich eine Tangente zeichnen - auch diese will ich skalieren in dem ich den Definitionsbereich angebe (also wie eben bei der Sekante) - und auch hier würde ich gerne ohne Rechnen auskommen. Ich habe im pgf-Manual zwar das Beispiel mit der Tangente an den Kreis gesehen, mir war es aber etwas zu kurz gefasst, also das ich es selbständig auf diese Funktion übertragen könnte.
\begin{tikzpicture}[scale=1.40]
%% --- Koordinatendefinition: 
  \coordinate (a) at (0.50,2.119);


%% --- Achsen und Hilfslinien:
  \draw[-stealth] (-.10,0.00) -- (10.4,0.00) node[right] {$x$};           % x-Achse
  \draw[-stealth] (0.00,-.10) -- (0.00,5.00) node[above] {$f(x)$};        % y-Achse  

  \draw[help lines] (a) -- (A)           node[below,black] {$a$};
  \draw[help lines] (a) -- (-0.08,2.119) node[left,black]  {$f(a)$}; 


%% --- Funktion, Tangente:
  \draw[line width = 0.8pt] plot[domain=0:10, samples=200] (\x,{2*sin(0.63*\x r) + 1.5});
  \fill[black, opacity=.8]        (a) circle (1.75pt);
\end{tikzpicture}

Gruß

von esdd » Mi 6. Jul 2011, 21:00

Hallo,

hier ist ein Vorschlag bei dem pgf für dich rechnet:
\documentclass{scrartcl}
\usepackage{tikz}

\newcommand\ZeichneGerade[6]{%
  \coordinate (Punkt1) at (#1,#2); 
  \coordinate (Punkt2) at (#3,#4);
  \pgfmathsetmacro\m{(#4-#2)/(#3-#1)}%
  \pgfmathsetmacro\n{#2-\m*#1}%
  \draw plot[domain=#5:#6] (\x,{\m*\x+\n});
}
%Syntax: \ZeichneGerade{x1}{y1}{x2}{y2}{anfang plotbereich}{ende plotbereich}

\begin{document}

\begin{tikzpicture}
  \draw[lightgray](0,0)grid (7,6);
  \ZeichneGerade{0.5}{2.119}{3.25}{3.277}{0}{7}
  \draw[red,very thick](Punkt1)--(Punkt2);
  \ZeichneGerade{2}{2}{3.5}{3}{0}{7}
  \draw[green,very thick](Punkt1)--(Punkt2);
\end{tikzpicture}

\end{document}
Gruß
Elke

TikZ -- Gerade (nicht Strecke) durch zwei Punkte.

von michl1211 » Mi 6. Jul 2011, 18:10

Hallo,

ich würde gerne eine Gerade durch zwei Punkte zeichnen. Theoretisch könnte ich dies tun mit
\tikz \draw plot[domain=0:7] (\x,{Steigung*\x+Verschiebung});
Dies hat aber den Nachteil, daß ich zunächst (von Hand) Steigung und Verschiebung der Gerade, die durch die gegebenen Punkte verläuft berechnen muss.

Ich will aber folgendes. Ich möchte zwei Punkte Vorgeben und und dann TikZ vermitteln: Zeichne die Gerade durch die gegebenen Punkte mit x-Koordinaten Abschnitt 0 bis 7 (also sowas wie domain=0:7)
\begin{tikzpicture}[scale=1.40]
%% --- Koordinatendefinition: 
  \coordinate (a) at (0.50,2.119);
  \coordinate (b) at (3.25,3.277);

  \draw (a) -- (b);  % Die Linie soll die Punkte a und b "durchqueren"
                     % und zwar vom x-Achsenabschnitt Null bis Sieben

\end{tikzpicture}

Gruß

Nach oben