Problem mit \newcommand welches rechnen soll

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: Problem mit \newcommand welches rechnen soll

von Temporärname01 » Mi 10. Okt 2012, 13:33

:oops:

Dass das Tikz auch selbst kann wusste ich nicht...
Vielen Dank für die schnelle und hilfreiche Antwort.

von esdd » Mi 10. Okt 2012, 12:58

Hallo,

die drei dimensionalen Koordinaten lassen sich doch direkt eingeben:
\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
  \coordinate (P1) at (0,0,0);
  \coordinate (P2) at (0,0,1);
  \coordinate (P3) at (1,0,1);
  \coordinate (P4) at (1,0,0);
  \coordinate (P5) at (0,1,0);
  \coordinate (P6) at (0,1,1);
  \coordinate (P7) at (1,1,1);
  \coordinate (P8) at (1,1,0);
  %
  \draw (P1)--(P2)--(P3)--(P4)--cycle;
  \draw (P5)--(P6)--(P7)--(P8)--cycle;
  \draw (P1)--(P5);
  \draw (P2)--(P6);
  \draw (P3)--(P7);
  \draw (P4)--(P8);
\end{tikzpicture}
\end{document}
Wenn du die Perspektiven aus irgendeinem Grund selbst berechnen willst, wäre eine Möglichkeit:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\newcommand{\coord}[4]{\coordinate (#1) at ($ (#2,0)+(0,#3)+#4*(.382,.382) $ );}
\begin{document}
\begin{tikzpicture}
  \coord{P1}{0}{0}{0}
  \coord{P2}{0}{0}{1}
  \coord{P3}{1}{0}{1}
  \coord{P4}{1}{0}{0}
  \coord{P5}{0}{1}{0}
  \coord{P6}{0}{1}{1}
  \coord{P7}{1}{1}{1}
  \coord{P8}{1}{1}{0}
  %
  \draw (P1)--(P2)--(P3)--(P4)--cycle;
  \draw (P5)--(P6)--(P7)--(P8)--cycle;
  \draw (P1)--(P5);
  \draw (P2)--(P6);
  \draw (P3)--(P7);
  \draw (P4)--(P8);
\end{tikzpicture}
\end{document}
Gruß
Elke

Problem mit \newcommand welches rechnen soll

von Temporärname01 » Mi 10. Okt 2012, 12:11

Hallo Forum.
Ich arbeite gerade an einer Präsentation und möchte daher mit Tikz ein par platonische Körper zeichnen (bitte keine Vorschläge machen, einfach Bilder einzubinden).

Um mir die ganze Perspektivumrechnungsarbeit zu ersparen hab ich mir einen neuen Befehl mit \newcommand geschrieben.

Hier mal ein kleines Beispiel:
\documentclass{article}

%ams-packages
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

%zeichnungen
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{xcolor}

\newcommand{\coord}[3]{($ (#1,0)+(0,#2)+#3*(.382,.382) $ )}
\begin{document}
	\begin{tikzpicture}
		\coordinate (P1) at \coord{0}{0}{0};
		\coordinate (P2) at \coord{0}{0}{1};
		\coordinate (P3) at \coord{1}{0}{1};
		\coordinate (P4) at \coord{1}{0}{0};
		\coordinate (P5) at \coord{0}{1}{0};
		\coordinate (P6) at \coord{0}{1}{1};
		\coordinate (P7) at \coord{1}{1}{1};
		\coordinate (P8) at \coord{1}{1}{0};
		
		\draw (P1)--(P2)--(P3)--(P4)--cycle;
		\draw (P5)--(P6)--(P7)--(P8)--cycle;
		\draw (P1)--(P5);
		\draw (P2)--(P6);
		\draw (P3)--(P7);
		\draw (P4)--(P8);
	\end{tikzpicture}
\end{document}
Diese erzeugt eine Menge Fehlermeldungen.

Wenn ich jedoch alles per Hand eingebe funktionierts.
\documentclass{article}

%ams-packages
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

%zeichnungen
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{xcolor}


\begin{document}
	\begin{tikzpicture}
		\coordinate (P1) at ($(0,0)+(0,0)+0*(.382,.382)$);
		\coordinate (P2) at ($(0,0)+(0,0)+1*(.382,.382)$);
		\coordinate (P3) at ($(1,0)+(0,0)+1*(.382,.382)$);
		\coordinate (P4) at ($(1,0)+(0,0)+0*(.382,.382)$);
		\coordinate (P5) at ($(0,0)+(0,1)+0*(.382,.382)$);
		\coordinate (P6) at ($(0,0)+(0,1)+1*(.382,.382)$);
		\coordinate (P7) at ($(1,0)+(0,1)+1*(.382,.382)$);
		\coordinate (P8) at ($(1,0)+(0,1)+0*(.382,.382)$);
		
		\draw (P1)--(P2)--(P3)--(P4)--cycle;
		\draw (P5)--(P6)--(P7)--(P8)--cycle;
		\draw (P1)--(P5);
		\draw (P2)--(P6);
		\draw (P3)--(P7);
		\draw (P4)--(P8);
	\end{tikzpicture}
\end{document}
Falls dieses Problem lösbar ist noch eine weitere Frage:
kann man den Befehl auch so konstruieren, dass man
\coords(x,y,z)
eingeben kann anstelle von
\coords{x}{y}{z}
?

Nach oben