Wie kann man eine reguläre Pyramide mit quadratischer (rechteckiger) Grundfläche in Tikz zeichnen? Es sollte

  • die Höhe der Pyramide eingezeichnet sein, wie auch
  • eine Schattierung der Grundfläche.

Ich verstehe das Beispiel von @cis leider nicht, so dass ich es nicht entsprechend adaptieren kann.

gefragt 10 Dez '19, 20:38

runix's gravatar image

runix
98955077
Akzeptiert-Rate: 0%

bearbeitet 10 Dez '19, 21:05


Das kann man recht schlicht halten, indem man einfach die 3D-Koordinaten eingibt.

alt text

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

\begin{document}
\pgfmathsetmacro{\a}{4}%  
\pgfmathsetmacro{\b}{5}%  
\pgfmathsetmacro{\h}{3}%

\begin{tikzpicture}[%scale=0.7,
font=\footnotesize, 
z ={(0,0,-cos(45))},
]

\coordinate[label=left:$A$] (A) at (0,0,0); 
\coordinate[label=right:$B$] (B) at (\a,0,0); 
\coordinate[label=right:$C$] (C) at (\a,0,\b); 
\coordinate[label=below:$D$] (D) at (0,0,\b); 
\coordinate[] (M) at (0.5*\a,0,0.5*\b); 
\path[] (M) --+ (0,\h,0) coordinate[label=$S$] (S);

% Grundfläche
\fill[lightgray] (A) -- (B) -- (C) -- (D) --cycle;
\draw[] (A) -- (B) node[midway, below]{$a=\a$\,cm} -- (C) node[pos=0.6, sloped, below]{$b=\b$\,cm}; 
\draw[densely dashed] (A) -- (D) -- (C); 
% Höhe
\draw[] ($(M)!-5pt!(C)$) -- ($(M)!5pt!(C)$) ; 
\draw[] ($(M)!-5pt!(B)$) -- ($(M)!5pt!(B)$) ; 
\draw[] (M) -- (S) node[midway, right]{$h=\h$\,cm}; 
% Mantellinien
\draw[densely dashed] (D) -- (S); 
\foreach \P in {A,B,C}{  \draw[] (\P) -- (S);     }

\begin{scope}[-latex, shift={(0,\h-0.3,0)}]
\foreach \P/\s/\Pos in {(1,0,0)/x/below, (0,1,0)/y/left, (0,0,2)/z/right} 
\draw[] (0,0,0) -- \P node[\Pos, pos=0.9,inner sep=2pt]{$\s$};
\end{scope}
\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 11 Dez '19, 15:19

haver555's gravatar image

haver555
1496
Akzeptiert-Rate: 9%

bearbeitet 11 Dez '19, 15:29

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:

×685
×11

gestellte Frage: 10 Dez '19, 20:38

Frage wurde gesehen: 1,120 Mal

zuletzt geändert: 11 Dez '19, 15:29