Matroids Matheplanet Forum Index
Moderiert von Stefan_K
Matroids Matheplanet Forum Index » Textsatz mit LaTeX » TikZ Fehler?
Druckversion
Druckversion
Antworten
Antworten
Autor
Kein bestimmter Bereich TikZ Fehler?
viertel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 04.03.2003
Mitteilungen: 27746
Herkunft: Hessen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2021-01-24

\(\begingroup\)\(\newcommand\d{\mathop{}\!\mathrm{d}}\)
Ich habe mal angefangen, mit TikZ zu „spielen“.
Und habe prompt ein Problem:

Warum stehen die horizontalen Linien über die Dreiecksseiten hinaus? Ihre Enden sollten eigentlich auf den Dreiecksseiten liegen🤔 Und $A_3B_3$ liegt gar oberhalb der Spitze, obwohl es knapp darunter liegen sollte.
$A_1$ sollte eigentlich da liegen, wo die blaue Linie die Seite $AC$ schneidet.
Bei mir lokal (Texmaker) passiert das Gleiche😖
Ein Ganzzahlproblem ist es nicht, denn die vertikalen roten Linien haben ganzzahlige Koordinaten.
Und die Spitze $C$ liegt korrekt auf der Höhe $17 \cdot 0.4=6.8$.
Latex
\begin{tikzpicture}[scale=0.8] % ,show background rectangle
\def\c{17}      % Grundseite c
%\def\H{0.4*\c}  % Höhe H
\pgfmathsetmacro{\H}{0.4*\c}  % Höhe H
\def\Cx{0.6*\c} % Höhenfußpunkt
\draw[fill=lightgray!20] 
	(0,0) node[below left] (A) {$A$} -- 
	(\c,0) node[below right] (B) {$B$} -- 
	(\Cx,\H) node[above] (C) {$C$} -- 
	cycle;
\draw[dashed] (C) -- (\Cx,0) node[below] {$R$};
\def\ta{0.65}
\def\tb{0.35}
\def\tc{0.99}
\draw ($ (A)!\ta!(C) $) node[left,fill=red,inner sep=2pt,label=left:{$A_1$}] (A1) {}
	-- ($ (B)!\ta!(C) $) node[right] (B1) {$B_1$};
\draw ($ (A)!\tb!(C) $) node[left] (A2) {$A_2$}
	-- ($ (B)!\tb!(C) $) node[right] (B2) {$B_2$};
\draw ($ (A)!\tc!(C) $) node[left] (A3) {$A_3$}
	-- ($ (B)!\tc!(C) $) node[right] (B3) {$B_3 \quad H=\H$};
\draw (0,-1) -- +(0,6);
\draw[blue] (6.63,-1) -- +(0,6);
\draw[red] (6,-1) -- +(0,6) node[above left] {$(6 \mid 5)$};
\draw[red] (7,-1) -- +(0,6) node[above right] {$(7 \mid 5)$};
\draw[green] (9,6.8) -- +(2,0);
\end{tikzpicture}

<math>
\begin{tikzpicture}[scale=0.8] % ,show background rectangle
\def\c{17}      % Grundseite c
%\def\H{0.4*\c}  % Hhe H
\pgfmathsetmacro{\H}{0.4*\c}  % Hhe H
\def\Cx{0.6*\c} % Hhenfupunkt
\draw[fill=lightgray!20]
(0,0) node[below left] (A) {$A$} --
(\c,0) node[below right] (B) {$B$} --
(\Cx,\H) node[above] (C) {$C$} --
cycle;
\draw[dashed] (C) -- (\Cx,0) node[below] {$R$};
\def\ta{0.65}
\def\tb{0.35}
\def\tc{0.99}
\draw ($ (A)!\ta!(C) $) node[left,fill=red,inner sep=2pt,label=left:{$A_1$}] (A1) {}
-- ($ (B)!\ta!(C) $) node[right] (B1) {$B_1$};
\draw ($ (A)!\tb!(C) $) node[left] (A2) {$A_2$}
-- ($ (B)!\tb!(C) $) node[right] (B2) {$B_2$};
\draw ($ (A)!\tc!(C) $) node[left] (A3) {$A_3$}
-- ($ (B)!\tc!(C) $) node[right] (B3) {$B_3 \quad H=\H$};
\draw (0,-1) -- +(0,6);
\draw[blue] (6.63,-1) -- +(0,6);
\draw[red] (6,-1) -- +(0,6) node[above left] {$(6 \mid 5)$};
\draw[red] (7,-1) -- +(0,6) node[above right] {$(7 \mid 5)$};
\draw[green] (9,6.8) -- +(2,0);
\end{tikzpicture}
</math>
Was geht da schief? Ich bin gespannt…

Gruß vom ¼


-----------------
Bild
\(\endgroup\)


Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Triceratops
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 28.04.2016
Mitteilungen: 5456
Herkunft: Berlin
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2021-01-24


Das liegt daran, dass du Nodes abseits der eigentlichen Koordinaten positioniert hast. Und die Punkte auf den Seiten werden mit diesen Nodes berechnet. Das Problem gibt es also nicht, wenn du die Nodes direkt auf die Koordinaten legst und lediglich ihre Beschriftungen anders platzierst.

<math>
\begin{tikzpicture}[scale=0.8]
\def\c{17}
\pgfmathsetmacro{\H}{0.4*\c}
\def\Cx{0.6*\c}
\def\ta{0.65}
\draw[fill=lightgray!20]
(0,0) node[label=left: $A$] (A)  --
(\c,0) node[label=right: $B$] (B) --
(\Cx,\H) node[label=above: $C$] (C) --
cycle;
\draw ($ (A)!\ta!(C) $) node[left,fill=red,inner sep=2pt] (A1) {}
-- ($ (B)!\ta!(C) $) node[right] (B1) {};
\end{tikzpicture}
</math>
 
LaTeX
\begin{tikzpicture}[scale=0.8]
\def\c{17}
\pgfmathsetmacro{\H}{0.4*\c}
\def\Cx{0.6*\c}
\def\ta{0.65}
\draw[fill=lightgray!20] 
	(0,0) node[label=left: $A$] (A)  -- 
	(\c,0) node[label=right: $B$] (B) -- 
	(\Cx,\H) node[label=above: $C$] (C) -- 
	cycle;
\draw ($ (A)!\ta!(C) $) node[left,fill=red,inner sep=2pt] (A1) {}
	-- ($ (B)!\ta!(C) $) node[right] (B1) {};
\end{tikzpicture}



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
viertel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 04.03.2003
Mitteilungen: 27746
Herkunft: Hessen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2021-01-24

\(\begingroup\)\(\newcommand\d{\mathop{}\!\mathrm{d}}\)
Noch krasser wird dieser Anfänger-/Denkfehler*) sichtbar, wenn der node $A$ [above left] statt [below left] positioniert wird. Die roten Pfeile**) zeigen, wo (A) wirklich liegt. Und damit auch $A_1$, was dann sogar zu einer schiefen Verbindung $A_1 - B_1$ führt.
der grüne Pfeil zeigt auf die Soll-Position von $A_1$😎

*) Danke für die Aufklärung. Bisher dachte ich, [below left] etc. wäre nur für die Positionierung des Labels. Aber damit wird der komplette node verschoben.
**) Wie kann ich die bis zur wahren Position von (A) verlängern?
LaTeX
\begin{tikzpicture}[scale=0.8] % ,show background rectangle
\def\c{17}      % Grundseite c
\pgfmathsetmacro{\H}{0.4*\c}  % Höhe H
\def\Cx{0.6*\c} % Höhenfußpunkt
\draw[fill=lightgray!20] 
	(0,0)    node[above left]  (A) {$A$} -- 
	(\c,0)   node[below right] (B) {$B$} -- 
 	(\Cx,\H) node[above]       (C) {$C$} -- 
	cycle;
\def\ta{0.65}
\draw ($ (A)!\ta!(C) $) node[left,fill=red,inner sep=2pt,label=left:{$A_1$}] (A1) {}
	-- ($ (B)!\ta!(C) $) node[right] (B1) {$B_1$};
\draw[->,red] (-1,1) -- (A);
\draw[->,red] (C) -- (A);
\end{tikzpicture}
<math>
\begin{tikzpicture}[scale=0.8] % ,show background rectangle
\def\c{17}      % Grundseite c
\pgfmathsetmacro{\H}{0.4*\c}  % Hhe H
\def\Cx{0.6*\c} % Hhenfupunkt
\draw[fill=lightgray!20]
(0,0) node[above left] (A) {$A$} --
(\c,0) node[below right] (B) {$B$} --
(\Cx,\H) node[above] (C) {$C$} --
cycle;
\def\ta{0.65}
\draw ($ (A)!\ta!(C) $) node[left,fill=red,inner sep=2pt,label=left:{$A_1$}] (A1) {}
-- ($ (B)!\ta!(C) $) node[right] (B1) {$B_1$};
\draw[->,red] (-1,1) -- (A);
\draw[->,red] (C) -- (A);
\draw[->,green] (7.63, 3.42) -- (6.63, 4.42);
\end{tikzpicture}
</math>
\(\endgroup\)


Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Triceratops
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 28.04.2016
Mitteilungen: 5456
Herkunft: Berlin
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, eingetragen 2021-01-24


2021-01-24 16:05 - viertel in Beitrag No. 2 schreibt:
**) Wie kann ich die bis zur wahren Position von (A) verlängern?
LaTeX
\draw (C.center) -- (A.center);



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Wario
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 01.05.2020
Mitteilungen: 326
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, eingetragen 2021-01-24

\(\begingroup\)\(\newcommand\d{\mathop{}\!\mathrm{d}}\)
(0a) Immer vollständige, lauffähige Minimalbeispiele angeben (sonst muss der Helfer das alles selbst ergänzen).

(0b) Möglichst alles beseitigen, was mit dem Problem nichts zu tun hat.

(1a) Möglichst mit Koordinaten arbeiten (s.u.).

(1b) Alles schön in Bearbeitungsblöcke aufteilen:
1. Koordinaten, 2. Konstruktionen, 3. Annotationen, ....

(1c) Nicht alles an Ort und Stelle in den Code schreiben, sondern mehrfach Verwendetes als globalen style definieren.

(2) Das Problem hier ist, dass nodes verwendet werden, obwohl coordinates gewünscht sind.
nodes haben Längenmaße, coordinates sind nur Positionen.

<math>
\begin{tikzpicture}[scale=0.8,
mypointstyle/.style={fill=red, inner sep=2pt},
background rectangle/.style={draw=none, fill=black!1, rounded corners}, show background rectangle,
]

\pgfmathsetmacro\c{17}      % Grundseite c
\pgfmathsetmacro{\H}{0.4*\c}  % Hhe H
\pgfmathsetmacro\Cx{0.6*\c} % Hhenfupunkt

\pgfmathsetmacro\ta{0.65}
\pgfmathsetmacro\tb{0.35}
\pgfmathsetmacro\tc{0.99}

% Koordinaten
\coordinate[label=left:$A$] (A) at (0,0);
\coordinate[label=right:$B$] (B) at (\c,0);
\coordinate[label=$C$] (C) at (\Cx,\H);

\coordinate[label={[below=1mm]:$R$}] (R) at (\Cx,0);
\coordinate[label=135:$A_1$] (A1) at ($(A)!\ta!(C)$);
\coordinate[label=45:$B_1$] (B1) at ($(B)!\ta!(C)$);

% Dreieck:
\draw[fill=lightgray!20] (A) -- (B) -- (C) --cycle;

% Hhe
\draw[dashed] (C) -- (R);

% Horizontale
\draw[] (A1) -- (B1);

% Punkte
\foreach \P in {A1, B1} \node[mypointstyle] at (\P) {};

\foreach \P in {R} \fill[] (\P) circle[radius=3.25pt];
\end{tikzpicture}
</math>

LaTeX
%\documentclass[]{article}
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
 
\begin{document}
 
\begin{tikzpicture}[scale=0.8,
mypointstyle/.style={fill=red, inner sep=2pt}, 
]
 
\pgfmathsetmacro\c{17}      % Grundseite c
\pgfmathsetmacro{\H}{0.4*\c}  % Höhe H
\pgfmathsetmacro\Cx{0.6*\c} % Höhenfußpunkt
 
\pgfmathsetmacro\ta{0.65}
\pgfmathsetmacro\tb{0.35}
\pgfmathsetmacro\tc{0.99}
 
% Koordinaten
\coordinate[label=left:$A$] (A) at (0,0);
\coordinate[label=right:$B$] (B) at (\c,0);
\coordinate[label=$C$] (C) at (\Cx,\H);
 
\coordinate[label={[below=1mm]:$R$}] (R) at (\Cx,0);
\coordinate[label=135:$A_1$] (A1) at ($(A)!\ta!(C)$);
\coordinate[label=45:$B_1$] (B1) at ($(B)!\ta!(C)$);
 
% Dreieck: 
\draw[fill=lightgray!20] (A) -- (B) -- (C) --cycle;
 
% Höhe
\draw[dashed] (C) -- (R);
 
% Horizontale
\draw[] (A1) -- (B1); 
 
% Punkte 
\foreach \P in {A1, B1} \node[mypointstyle] at (\P) {};
 
\foreach \P in {R} \fill[] (\P) circle[radius=3.25pt];
 
% Für das Problem unwichtig:
 
%\draw ($(A)!\ta!(C)$)
%% node[left,fill=red,inner sep=2pt,label=left:{$A_1$}] (A1) {}
%	-- ($ (B)!\ta!(C) $) %node[right] (B1) {$B_1$}
 
%%\draw[red] ($ (A)!\ta!(C) $) node[left,fill=red,inner sep=2pt] (A1) {}
%	-- ($ (B)!\ta!(C) $) node[right] (B1) {};
 
%\draw ($ (A)!\tb!(C) $) node[left] (A2) {$A_2$}
%	-- ($ (B)!\tb!(C) $) node[right] (B2) {$B_2$};
%\draw ($ (A)!\tc!(C) $) node[left] (A3) {$A_3$}
%	-- ($ (B)!\tc!(C) $) node[right] (B3) {$B_3 \quad H=\H$};
%\draw (0,-1) -- +(0,6);
%\draw[blue] (6.63,-1) -- +(0,6);
%\draw[red] (6,-1) -- +(0,6) node[above left] {$(6 \mid 5)$};
%\draw[red] (7,-1) -- +(0,6) node[above right] {$(7 \mid 5)$};
%\draw[green] (9,6.8) -- +(2,0);
\end{tikzpicture}
 
\end{document}



[Die Antwort wurde nach Beitrag No.2 begonnen.]
\(\endgroup\)


Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
viertel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 04.03.2003
Mitteilungen: 27746
Herkunft: Hessen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, vom Themenstarter, eingetragen 2021-01-24

\(\begingroup\)\(\newcommand\d{\mathop{}\!\mathrm{d}}\)
Mei Liebche,

wie viele TikZ Grafiken hast du bisher von mir gesehen? Genau, nix. Ich bin Anfänger. Aber nicht auf dem Matheplaneten, siehe meinen Zähler. Ich kenne also schon ein paar grundsätzliche Regeln😎

2021-01-24 16:56 - Wario in Beitrag No. 4 schreibt:
(0a) Immer vollständige, lauffähige Minimalbeispiele angeben (sonst muss der Helfer das alles selbst ergänzen).
Das Beispiel ist vollständig lauffähig – auf dem Matheplaneten.

Wario schreibt:
(0b) Möglichst alles beseitigen, was mit dem Problem nichts zu tun hat.
Das waren alles Experimente, um mit TikZ vertraut zu werden. Überflüssig wäre z.B. das komplette $\LaTeX$ Dokument, das ich bisher erstellt habe, wenn ich das hier mit reingestellt hätte.
Die Hilfslinien waren für mich/euch, um zu erkennen, wo die Punkte tatsächlich hätten sein sollen.
Und auch die zweite und dritte horizontale Linie, insbesondere $A_3-B_3$, waren für mich, um den Effekt einschätzen zu können.

Wario schreibt:
(1a) Möglichst mit Koordinaten arbeiten (s.u.).
Ok, nehme ich auf.

Wario schreibt:
(1b) Alles schön in Bearbeitungsblöcke aufteilen:
1. Koordinaten, 2. Konstruktionen, 3. Annotationen, ....
Ist bei dem Minibeispiel machbar, aber schaffst es auch so.

Wario schreibt:
(1c) Nicht alles an Ort und Stelle in den Code schreiben, sondern mehrfach Verwendetes als globalen style definieren.
Wenn ich so lange mit TikZ arbeite wie du, dann weiß ich das auch alles.
Aber ich nehme das mit den Styles als Lernpunkt auf.
Ich hab's halt noch nicht geschafft, die 1300 Seiten Doku durchzuarbeiten😛

Wario schreibt:
(2) Das Problem hier ist, dass nodes verwendet werden, obwohl coordinates gewünscht sind.
nodes haben Längenmaße, coordinates sind nur Positionen.
Wie gesagt: Anfänger-/Denkfehler😁
Aber lernwillig und -fähig🤗😎
\(\endgroup\)


Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Wario
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 01.05.2020
Mitteilungen: 326
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2021-01-24


2021-01-24 17:27 - viertel in Beitrag No. 5 schreibt:
Das Beispiel ist vollständig lauffähig – auf dem Matheplaneten.

Der Helfer probiert normalerweise nicht, den Code auf dem MP zu übersetzen (spezielles LaTeX), sondern in seinem Editor (normales LaTeX).



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
viertel hat die Antworten auf ihre/seine Frage gesehen.
viertel hatte hier bereits selbst das Ok-Häkchen gesetzt.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]