tikz: Mittelwert als Schwerpunkt

tikz: Mittelwert als Schwerpunkt

Gewünschte Ausgabe

Bildbeschreibung hier eingeben

Mein MWE

Den Code habe ich ausgeliehen vonHier.

\documentclass[tikz,border=1cm]{standalone}
\usepackage{tikz}

\begin{document}
        \begin{tikzpicture}[rotate=-30,transform shape]
            \draw (-0.2,0) rectangle (15.5,1);
            %% lower divisions
            \foreach \x in {0,1,...,15}{
            \draw (\x,0) -- (\x,0.2)node[above,scale=0.4]{\x};
            }
            \foreach \x in {0.1,0.2,...,14.9}{
            \draw (\x,0) -- (\x,0.075);
            }
            \foreach \x in {0.5,1,...,14.5}{
            \draw (\x,0) -- (\x,0.15);
            }
            % Upper divisions
            \foreach \x in {0,1,...,6}{
            \draw (\x in,1) -- (\x in,0.8)node[below,scale=0.4]{\x};
            }
            \foreach \x in {0.1,0.2,...,5.9}{
            \draw (\x in,1) -- (\x in,0.925);
            }
            \foreach \x in {0.5,1,...,5.5}{
            \draw (\x in,1) -- (\x in,0.85);
            }
        \end{tikzpicture}
\end{document}

Ausgabe

Bildbeschreibung hier eingeben

Für jede Hilfe bin ich sehr dankbar. Danke

Antwort1

Verbesserte Version:

Bildbeschreibung hier eingeben

Jetzt wird alles nur noch mit einer BalanceUmgebung (das obligatorische Argument ist die durch Kommas getrennte Liste zur Platzierung der Gewichte) und einem \CotasBefehl (für die Hilfslinien) erledigt. Das obige Bild wurde beispielsweise einfach durch den Befehl

\begin{Balance}{1,2,3,5,7,9}
\end{Balance}

\begin{Balance}{3,4,8}
\Cotas{4,8}
\Cotas[2]{3}
\end{Balance}

\begin{Balance}{2,4,6,8,10}
\Cotas{4,8}
\Cotas[2]{2,10}
\end{Balance}

\begin{Balance}{1,4,5,8,10,12}
\Cotas{5,8}
\Cotas[2]{4,10}
\Cotas[3]{1,12}
\end{Balance}

Der Code:

\documentclass{article}
\usepackage[]{geometry}
\usepackage{tikz} 

\definecolor{color1}{RGB}{249,255,195}
\definecolor{color2}{RGB}{251,245,160}
\definecolor{color3}{RGB}{239,178,107}
\definecolor{color4}{RGB}{214,96,0}
\definecolor{color5}{RGB}{191,203,224}
\definecolor{color6}{RGB}{105,103,161}

% A pic path for the weights
\tikzset{
Peso/.pic={
  \coordinate (wll) at (-0.4cm,0);
  \coordinate (wlr) at (0.4cm,0);
  \coordinate (wul) at (-0.3cm,0.4cm);
  \coordinate (wur) at (0.3cm,0.4cm);
  \draw[fill=color5] 
    (wll) -- (wlr) -- (wur) -- (wul) -- cycle;
  \draw[fill=color6]
    (wur) --
    ++(-\Angle:6pt) --
    ++(-75:0.4cm) --
    (wlr) --
    cycle;  
  }
}

\newcounter{Number}
\newcounter{Suma}
\newlength\XFactor
\setlength\XFactor{1cm}

\def\RectHt{1cm}
\def\Angle{20}
\def\Corr{0pt}
\def\Gap{6pt}


\newenvironment{Balance}[1]
{%
  \medskip\par\noindent
  \setcounter{Number}{0}%
  \setcounter{Suma}{0}%
  \begin{tikzpicture}[x=\XFactor]
    \foreach \Valor in {#1}
    {
      \pic at (\Valor,\RectHt) {Peso};
      \stepcounter{Number}%
      \addtocounter{Suma}{\Valor}
      \xdef\Steps{\Valor}
    }
    \def\RectWd{\numexpr\Steps+1\relax*\XFactor}%
    \pgfmathsetmacro{\FulcrumCoord}{\theSuma/\theNumber}

% The ruled rectangle
    \coordinate (ll) at (0,0);%\node at ([xshift=-10pt]ll) {\FulcrumCoord};
    \coordinate (ur) at (\RectWd,\RectHt);
    \draw[fill=color1]
      (ll) rectangle (ur);
    \draw[fill=color2] 
      (ur) -- 
      ++(-\Angle:6pt) -- 
      ++(0,-\RectHt) -- 
      ++(-\RectWd,0) -- 
      (ll) --
      ++(\RectWd,0) --
      cycle;   
    \foreach \Valor in {1,...,\Steps}
      \draw (\Valor,1) -- ++(0pt,-5pt) node[below] {\Valor};  
    \draw (\RectWd,0) -- ++(-\Angle:6pt);

% The fulcrum
    \draw[fill=color3] 
      (\FulcrumCoord,0) --
      ++(240:1) --
      ++(1,0) coordinate (aux) --
      cycle;
    \draw[fill=color4]  
      (\FulcrumCoord,0) --
      ++(-\Angle:6pt) --
      ++(-60:1) --
      ++(-1,0) --
      ++(180-\Angle:6pt) --
      ++(1,0) --
      cycle;
    \draw (aux) -- ++(-\Angle:6pt);
    \coordinate (cotaFulc) 
      at (\FulcrumCoord,\RectHt);
    \draw[color4] 
      (\FulcrumCoord,0) --
      ++(0,2pt) 
        node[above=-2pt] {\pgfmathprintnumber[precision=1]{\FulcrumCoord}};  
}
{\end{tikzpicture}\medskip\par\noindent}

\newcommand\Cotas[2][2]{
\draw 
  (\FulcrumCoord,\RectHt+#1\Corr+\number\numexpr#1-1\relax\Gap) -- 
  ++(0,10pt);
  \foreach \Valor in {#2}
    {
      \draw 
        (\Valor,\RectHt+#1\Corr+\number\numexpr#1-1\relax\Gap) -- 
          coordinate (cota\Valor) 
        ++(0,10pt);
      \draw[<->,>=latex,help lines] 
        (cotaFulc|-cota\Valor) -- 
          node[fill=white] {$\pgfmathparse{\Valor-\FulcrumCoord}\pgfmathprintnumber[precision=1]{\pgfmathresult}$} 
        (cota\Valor);
    }
}

\begin{document}

\begin{Balance}{1,2,3,5,7,9}
\end{Balance}

\begin{Balance}{3,4,8}
\Cotas{4,8}
\Cotas[2]{3}
\end{Balance}

\begin{Balance}{2,4,6,8,10}
\Cotas{4,8}
\Cotas[2]{2,10}
\end{Balance}

\begin{Balance}{1,4,5,8,10,12}
\Cotas{5,8}
\Cotas[2]{4,10}
\Cotas[3]{1,12}
\end{Balance}

\end{document}

Erste Version:

Hier ist eine Möglichkeit:

\documentclass{standalone}
\usepackage{tikz} 

\definecolor{color1}{RGB}{249,255,195}
\definecolor{color2}{RGB}{251,245,160}
\definecolor{color3}{RGB}{239,178,107}
\definecolor{color4}{RGB}{214,96,0}
\definecolor{color5}{RGB}{191,203,224}
\definecolor{color6}{RGB}{105,103,161}

\tikzset{
Peso/.pic={
  \coordinate (wll) at (-0.4cm,0);
  \coordinate (wlr) at (0.4cm,0);
  \coordinate (wul) at (-0.3cm,0.4cm);
  \coordinate (wur) at (0.3cm,0.4cm);
  \draw[fill=color5] 
    (wll) -- (wlr) -- (wur) -- (wul) -- cycle;
  \draw[fill=color6]
    (wur) --
    ++(-\Angle:6pt) --
    ++(-75:0.4cm) --
    (wlr) --
    cycle;  
  }
}

\begin{document}

\begin{tikzpicture}[x=1.3cm]
\def\RectWd{13cm}
\def\RectHt{1cm}
\def\Angle{20}

% The weights
\foreach \Valor in {3,4,8}
  \pic at (\Valor,\RectHt) {Peso};

% The ruled rectangle
\coordinate (ll) at (0,0);
\coordinate (ur) at (\RectWd,\RectHt);

\draw[fill=color1]
  (ll) rectangle (ur);
\draw[fill=color2] 
  (ur) -- 
  ++(-\Angle:6pt) -- 
  ++(0,-\RectHt) -- 
  ++(-\RectWd,0) -- 
  (ll) --
  ++(\RectWd,0) --
  cycle;   
\foreach \Valor in {1,...,9}
  \draw (\Valor,1) -- ++(0pt,-5pt) node[below] {\Valor};  
\draw (\RectWd,0) -- ++(-\Angle:6pt);

% The fulcrum
\draw[fill=color3] 
  (5,0) --
  ++(240:1) --
  ++(1,0) coordinate (aux) --
  cycle;
\draw[fill=color4]  
  (5,0) --
  ++(-\Angle:6pt) --
  ++(-60:1) --
  ++(-1,0) --
  ++(180-\Angle:6pt) --
  ++(1,0) --
  cycle;
\draw (aux) -- ++(-\Angle:6pt);

% the helping lines
\begin{scope}[
>=latex,
help lines
]
\foreach \Valor in {4,5,8}
  \draw (\Valor,1.5) -- coordinate (cota\Valor) ++(0,14pt);
\draw[<->] (cota4) -- node[fill=white] {$-1$} (cota5);
\draw[<->] (cota5) -- node[fill=white] {$3$} (cota8);
\foreach \Valor in {3,5}
  \draw (\Valor,2.2) -- coordinate (cota\Valor) ++(0,14pt);
\draw[<->] (cota3) -- node[fill=white] {$-2$} (cota5);
\end{scope}
\end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

Und man kann leicht verschiedene Anordnungen für das System herstellen:

\documentclass{standalone}
\usepackage{tikz} 

\definecolor{color1}{RGB}{249,255,195}
\definecolor{color2}{RGB}{251,245,160}
\definecolor{color3}{RGB}{239,178,107}
\definecolor{color4}{RGB}{214,96,0}
\definecolor{color5}{RGB}{191,203,224}
\definecolor{color6}{RGB}{105,103,161}

\tikzset{
Peso/.pic={
  \coordinate (wll) at (-0.4cm,0);
  \coordinate (wlr) at (0.4cm,0);
  \coordinate (wul) at (-0.3cm,0.4cm);
  \coordinate (wur) at (0.3cm,0.4cm);
  \draw[fill=color5] 
    (wll) -- (wlr) -- (wur) -- (wul) -- cycle;
  \draw[fill=color6]
    (wur) --
    ++(-\Angle:6pt) --
    ++(-75:0.4cm) --
    (wlr) --
    cycle;  
  }
}

\begin{document}

\begin{tikzpicture}[x=1.3cm]
\def\RectWd{14.3cm}
\def\RectHt{1cm}
\def\Angle{20}

% The weights
\foreach \Valor in {2,4,6,8,10}
  \pic at (\Valor,\RectHt) {Peso};

% The ruled rectangle
\coordinate (ll) at (0,0);
\coordinate (ur) at (\RectWd,\RectHt);

\draw[fill=color1]
  (ll) rectangle (ur);
\draw[fill=color2] 
  (ur) -- 
  ++(-\Angle:6pt) -- 
  ++(0,-\RectHt) -- 
  ++(-\RectWd,0) -- 
  (ll) --
  ++(\RectWd,0) --
  cycle;   
\foreach \Valor in {1,...,10}
  \draw (\Valor,1) -- ++(0pt,-5pt) node[below] {\Valor};  
\draw (\RectWd,0) -- ++(-\Angle:6pt);

% The fulcrum
\draw[fill=color3] 
  (6,0) --
  ++(240:1) --
  ++(1,0) coordinate (aux) --
  cycle;
\draw[fill=color4]  
  (6,0) --
  ++(-\Angle:6pt) --
  ++(-60:1) --
  ++(-1,0) --
  ++(180-\Angle:6pt) --
  ++(1,0) --
  cycle;
\draw (aux) -- ++(-\Angle:6pt);

% the helping lines
\begin{scope}[
>=latex,
help lines
]
\foreach \Valor in {4,6,8}
  \draw (\Valor,1.5) -- coordinate (cota\Valor) ++(0,14pt);
\draw[<->] (cota4) -- node[fill=white] {$-2$} (cota6);
\draw[<->] (cota6) -- node[fill=white] {$2$} (cota8);
\foreach \Valor in {2,6,10}
  \draw (\Valor,2.2) -- coordinate (cota\Valor) ++(0,14pt);
\draw[<->] (cota2) -- node[fill=white] {$-4$} (cota6);
\draw[<->] (cota10) -- node[fill=white] {$4$} (cota6);
\end{scope}
\end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen