Tikz Picture, Fläche unsymetrisch verziehen

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


heinrich
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mo 14. Mai 2018, 19:28

Tikz Picture, Fläche unsymetrisch verziehen

Beitrag von heinrich »

Hallo,

ich probiere eine "3D Ansicht" mit tikzpicture herzustellen.

Ich will einen Fachwerkträger aus Beton darstellen, welcher Dank der Hilfe des Forums auch in der Ebene geklappt hat. Jetzt probier ich ihn in einer Parallelprojektion darzustellen.


Den Block der im code die obere Zeichnung bildet, würde ich so lassen. Nun probiere ich das Fachwerk (im Code untere graue Zeichnung) dort reinzusetzten. So das die Punkte auch alle ganz gut passen.


Gibt es eine Möglichkeit eine Abbildungsmatrix auf die untere grau Zeichnung anzuwenden, um dadurch die Verschiebung hinzubekommen?

Falls jemand einen anderen Lösungsansatz parat hat, wäre ich sehr dankbar!



\documentclass[10pt,open=right,twoside]{scrreprt} 
\usepackage[ngerman]{babel} 
\usepackage[T1]{fontenc} 
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\usetikzlibrary{quotes,babel,angles,decorations.pathmorphing,arrows.meta} 
\usepackage{tikz-dimline} 
\show\b 






\begin{document}

\begin{tikzpicture}[pencildraw/.style={gray!75, decorate, decoration={random steps,segment length=2pt,amplitude=0.0pt}}]


%Ein paar sind hierfür nicht von Bedeutung...
\def \b {0.1}
\def \c {2*\b}
\def \e {0.07}
\def \w {1.4}
\def \h {1.6}
\def \y {3}
\def \x {2}
\def \s {\x*\h} 
\def \g {\w*2}   
\def \f {3.2/2.8} 
\def \a {0.16}
\def \b {0.3}
\def \c {0.56}


%Querschnitt
\draw[pencildraw/.style={decorate, decoration={random steps,segment length=2pt,amplitude=0.2pt}},gray!75]  
(0,0) rectangle (\w,\h);
%Layer im QS
\foreach \n in {1,...,19}
\draw[pencildraw]($(0,0) + (\n*\e,0)$) -- ($(0,\h) + (\n*\e,0)$);

%Längslinien
\draw[pencildraw] (\w,0)  -- (\y*\w,\x*\h);
\draw[pencildraw] (\w,\h)  -- (\y*\w,\y*\h);
\draw[pencildraw] (0,\h)  -- (\x*\w,\y*\h);


%Layer in Querrichtung
\foreach \n in {1,...,19}
\draw[pencildraw] ($(0,\h) + (\n*\e,0)$) -- ($(\x*\w,\y*\h) + (\n*\e,0)$);
\draw[pencildraw] (\x*\w,\y*\h) -- ($(\y*\w,\y*\h) + (0,0)$);
\draw[pencildraw] ($(\y*\w,\y*\h) + (0,0)$) -- (\y*\w,\x*\h);


%Fachwerk

\draw[pencildraw,fill=lightgray!50,even odd rule, yshift=-100] 
($(0,0) + (-\b,-\b)$) rectangle ($(12,1.6) + (\b,\b)$) 
($(0,0) + (\b,\c)$) -- ($(0,1.6) + (\b,-\b)$) -- ($(2,1.6) + (-1.4*\c,-\b)$) -- cycle 
($(0,0) + (1.5*\c,\b)$) -- ($(2,1.6) + (0,-0.7*\c)$) -- ($(4,0) + (-1.5*\c,\b)$) -- cycle
($(2,1.6) + (1.5*\c,-\b)$) -- ($(6,1.6) +(-1.5*\c,-\b)$) -- ($(4,0) +(0,0.7*\c)$) -- cycle
($(4,0) +(1.5*\c,\b)$) -- ($(6,1.6) +(0,-0.7*\c)$) -- ($(8,0) +(-1.5*\c,\b)$) -- cycle
($(6,1.6) + (1.5*\c,-\b)$) -- ($(8,0) +(0,0.7*\c)$) -- ($(10,1.6) +(-1.4*\c,-\b)$) -- cycle
($(8,0) +(1.5*\c,\b)$) -- ($(10,1.6) +(0,-0.7*\c)$) -- ($(12,0) +(-1.5*\c,\b)$) -- cycle
($(12,0) + (-\b,\c)$) -- ($(12,1.6) + (-\b,-\b)$) -- ($(10,1.6) + (1.4*\c,-\b)$) -- cycle
;
 

\end{tikzpicture}

\end{document}

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Wenn Dein Gebastel mit der Option amplitude wirken soll, dann z. B. auf die Weise, wie Du sie in meiner Änderung Deines Beispiels siehst.
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\usepackage{tikz-dimline}

\pgfplotsset{compat=1.15}

\begin{document}
\begin{tikzpicture}[
    pencildraw/.style={
        gray!75, 
        decorate, 
        decoration={
            random steps,
            segment length=2pt,
            amplitude=#1
        }
    },
    pencildraw/.default=0pt
]

% Ein paar sind hierfür nicht von Bedeutung ...
%\def \b {0.1}
%\def \c {2*\b}
\def \e {0.07}
\def \w {1.4}
\def \h {1.6}
\def \y {3}
\def \x {2}
%\def \s {\x*\h}
%\def \g {\w*2}  
%\def \f {3.2/2.8}
%\def \a {0.16}
\def \b {0.3}% überschreibt den ersten Befehl
\def \c {0.56}% siehe Kommentar zu \b

% Querschnitt
\draw [pencildraw=0.2pt] (0,0) rectangle (\w,\h);

\foreach \n in {1,...,19}
    \draw [pencildraw]
        % Layer im Querschnitt
        ($(0,0) + (\n*\e,0)$) -- ($(0,\h) + (\n*\e,0)$) -- 
        % Layer in Querrichtung
        ($(\x*\w,\y*\h) + (\n*\e,0)$)
    ;

% Längslinien
\draw [pencildraw] 
    (\w,0)  -- (\y*\w,\x*\h)
    (\w,\h) -- (\y*\w,\y*\h)
    (0,\h)  -- (\x*\w,\y*\h)
;

\draw [pencildraw] (\x*\w,\y*\h) -- ($(\y*\w,\y*\h) + (0,0)$) -- (\y*\w,\x*\h);

% Fachwerk
\draw [pencildraw, fill=lightgray!50, even odd rule, yshift=-100pt]
    ($(0,0) + (-\b,-\b)$) rectangle ($(12,1.6) + (\b,\b)$)
    ($(0,0) + (\b,\c)$) -- ($(0,1.6) + (\b,-\b)$) -- ($(2,1.6) + (-1.4*\c,-\b)$) -- cycle
    ($(0,0) + (1.5*\c,\b)$) -- ($(2,1.6) + (0,-0.7*\c)$) -- ($(4,0) + (-1.5*\c,\b)$) -- cycle
    ($(2,1.6) + (1.5*\c,-\b)$) -- ($(6,1.6) +(-1.5*\c,-\b)$) -- ($(4,0) +(0,0.7*\c)$) -- cycle
    ($(4,0) +(1.5*\c,\b)$) -- ($(6,1.6) +(0,-0.7*\c)$) -- ($(8,0) +(-1.5*\c,\b)$) -- cycle
    ($(6,1.6) + (1.5*\c,-\b)$) -- ($(8,0) +(0,0.7*\c)$) -- ($(10,1.6) +(-1.4*\c,-\b)$) -- cycle
    ($(8,0) +(1.5*\c,\b)$) -- ($(10,1.6) +(0,-0.7*\c)$) -- ($(12,0) +(-1.5*\c,\b)$) -- cycle
    ($(12,0) + (-\b,\c)$) -- ($(12,1.6) + (-\b,-\b)$) -- ($(10,1.6) + (1.4*\c,-\b)$) -- cycle
;
\end{tikzpicture}
\end{document}
Für die dreidimensionale Ansicht könnte Dir die TikZ-Bibliothek 3d oder das Paket tikz-3dplot helfen.

Ein Hinweis: Auf TeXwelt gibt es auch einige TikZ-Kundige und auf TeX.SX gibt es mindestens einen Helfer, der schon viele Antworten mithilfe des erwähnten Pakets erstellt hat. Denke aber bitte daran, in jedem Thema durch Verweise auf die Themen in den anderen Foren hinzuweisen.

Antworten