Erstellen eines neuen Befehls (nicht vorhanden) Kongruenztheorem AngleAngleAngle

Erstellen eines neuen Befehls (nicht vorhanden) Kongruenztheorem AngleAngleAngle

Ich versuche, ein Makro für den nicht existenten Kongruenzsatz WWW (AAA?) zu erstellen, bei dem man natürlich eine Seite a angeben muss (übrigens funktioniert SideSideSide gut). Jemand hat nach einem minimalen funktionierenden Beispiel gefragt. Die Frage ist geschlossen, daher weiß ich nicht, wie ich sie veröffentlichen kann, außer sie zu bearbeiten. Vielleicht sind einige Pakete hier nutzlos, aber ich habe versucht, sie zu minimieren. Das hier funktioniert bei mir gut. Ich habe das Problem gelöst, wie ich in meiner eigenen Antwort erwähnt habe, indem ich Grad verwendet habe, um die Längen der Seiten zu berechnen. Jetzt funktioniert der kommentierte „Clip“ in SSS nicht, aber ich werde versuchen, dies später zu beheben. Ich hoffe, das Bearbeiten der Frage war erlaubt.

\documentclass[]{scrartcl}
\usepackage[ngerman]{babel}


\usepackage{amsmath, amssymb}  %für logische Symbole


\usepackage{tikz}    
\usetikzlibrary{backgrounds}
\usetikzlibrary{decorations.pathmorphing}% Für Wellenlinien u.a.
\usetikzlibrary{automata,positioning}                     %für Schaltungen
\usetikzlibrary{angles}
\usetikzlibrary{quotes}
\usepackage[RPvoltages, europeanresistors, europeanvoltages]{circuitikz}     %für Schaltungen
\usetikzlibrary{calc} 
\usetikzlibrary{tikzmark, graphs, intersections}
\usetikzlibrary{mindmap, trees}




\usepackage{mathtools} %wird hier im speziellen benötigt um\abs zu definieren
\usepackage{gensymb}
\usepackage{pgfplotstable}
\usepackage{pgfplots}
\usepackage{pgffor}
\usetikzlibrary{datavisualization}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{patterns} % Hinzufügen der patterns-Bibliothek
\usepgfplotslibrary{groupplots}
%\usepackage{alphabeta}


\pgfplotsset{compat=1.18}
\usepackage{fp}%für Rechungen mit Variablen
\usepackage[round-mode = places, round-precision = 2]{siunitx}

\newcommand{\SSS}[4][1]{
    \begin{tikzpicture}[scale=#1]
        % Definiere die Punkte A und B
        \coordinate[label=left:$A$] (A) at (0,0);
        \coordinate[label=right:$B$] (B) at (#2,0);
        
        % Zeichne die Seite c
        \draw[blue] (A) -- (B) node[midway, below] {c = #2};
        
        % Zeichne die Kreise um A und B
        \draw[name path=circleA, green] (A) circle (#3);
        \draw[name path=circleB, red] (B) circle (#4);
        
        % Finde den Schnittpunkt der beiden Kreise und nenne ihn C
        \path[name intersections={of=circleA and circleB, by={C}}];
        
        % Berechne die Winkel
        \pgfmathsetmacro\angleA{acos((#2^2+#4^2-#3^2)/(2*#2*#4))}
        \pgfmathsetmacro\angleB{acos((#2^2+#3^2-#4^2)/(2*#2*#3))}
        \pgfmathsetmacro\angleC{acos((#3^2+#4^2-#2^2)/(2*#3*#4))}
        
        % Runde die Winkel auf volle Grad
        \pgfmathround{\angleA}
        \let\angleARounded\pgfmathresult
        \pgfmathround{\angleB}
        \let\angleBRounded\pgfmathresult
        \pgfmathround{\angleC}
        \let\angleCRounded\pgfmathresult
        
        % Berechne die Höhe
        \pgfmathsetmacro\height{#2*sin(\angleA)}
        
        % Setze den Clip-Befehl
        %\clip (-1,-1) rectangle (#2+1,\height+1);
        
        % Zeichne die Seiten a und b
        \draw[red] (B) -- (C) node[midway, above right] {a = #3};
        \draw[green] (C) -- (A) node[midway, above left] {b = #4};
        
        % Zeichne die Winkel
        \shorthandoff{"}
        \draw pic["$\alpha = \angleARounded^\circ$", draw=orange, <->, pic text options={yshift=0.1cm}, angle eccentricity=0.8, angle radius=1cm] {angle=B--A--C};
        \draw pic["$\beta = \angleBRounded^\circ$", draw=orange, <->, pic text options={yshift=0.1cm}, angle eccentricity=0.8, angle radius=1cm] {angle=C--B--A};
        \draw pic["$\gamma = \angleCRounded^\circ$", draw=orange, <->, pic text options={yshift=0.1cm}, angle eccentricity=0.8, angle radius=1cm] {angle=A--C--B};
        \shorthandon{"}
    \end{tikzpicture}
}


\newcommand{\WWW}[5][1]{
    % Überprüfe, ob die Summe der Winkel 180° beträgt
    \pgfmathparse{#2+#3+#4}
    \ifdim\pgfmathresult pt=180pt
    \begin{tikzpicture}[scale=#1, transform shape]
        % Definiere die Punkte B und C
        \coordinate[label=left:$B$] (B) at (0,0);
        \coordinate[label=right:$C$] (C) at (#5,0);
        
        % Zeichne die Seite a
        \draw[red] (B) -- (C) node[midway, below] {a = #5};
        
        % Berechne die Seiten b und c mit dem Sinussatz
        \pgfmathsetmacro\sideB{#5*sin(#3)/sin(#2)}
        \pgfmathsetmacro\sideC{#5*sin(#4)/sin(#2)}
        \message{Seite a = #5, Seite b = \sideB, Seite c = \sideC}
        
        % Zeichne die Winkelhalbierenden
        \pgfmathsetmacro\langesC{\sideC+1}
        \pgfmathsetmacro\langesB{\sideB+1}
        \draw[name path=angleB, blue] (B) -- ++(#3:\langesC cm);
        \draw[name path=angleC, green] (C) -- ++({180-#4}:\langesB cm);
        
        % Finde den Schnittpunkt der beiden Winkel und nenne ihn A
        \path[name intersections={of=angleB and angleC, by={A}}];
        \node[above] at (A) {$A$};
        
        % Zeichne die Seiten b und c
        \draw[blue] (A) -- (B) node[midway, above left] {c = \pgfmathprintnumber{\sideC}};
        \draw[green] (A) -- (C) node[midway, above right] {b = \pgfmathprintnumber{\sideB}};
        
        % Zeichne die Innenwinkel
        \shorthandoff{"}
        \draw pic["$\alpha = #2^\circ$", draw=orange, <->, pic text options={yshift=0.1cm}, angle eccentricity=0.8, angle radius=1cm] {angle=B--A--C};
        \draw pic["$\beta = #3^\circ$", draw=orange, <->, pic text options={yshift=0.1cm}, angle eccentricity=0.8, angle radius=1cm] {angle=C--B--A};
        \draw pic["$\gamma = #4^\circ$", draw=orange, <->, pic text options={yshift=0.1cm}, angle eccentricity=0.8, angle radius=1cm] {angle=A--C--B};
        \shorthandon{"}
        \message{Winkel #2 = #2, Winkel #3 = #3, Winkel #4 = #4}
        \message{Seite a = #5, Seite b = \sideB, Seite c = \sideC}
        
    \end{tikzpicture}
    \else
    nicht zu konstruieren
    \fi
}
\newcommand{\WSW}[4][1]{%#1=Skalierung #2=beta, #3=a, #4=gamma
    % Standardmäßig wird die Seite a gezeichnet, also werden beta und gamma angegeben und alpha wird erstmal berechnet.
    \pgfmathsetmacro\alph{180-#2-#4}
    \begin{tikzpicture}[scale=#1, transform shape]
        % Definiere die Punkte B und C
        \coordinate[label=left:$B$] (B) at (0,0);
        \coordinate[label=right:$C$] (C) at (#3,0);
        
        % Zeichne die Seite a
        \draw[red] (B) -- (C) node[midway, below] {a = #3};
        
        % Berechne die Seiten b und c mit dem Sinussatz
        \pgfmathsetmacro\sideB{#3*sin(#2)/sin(\alph)}
        \pgfmathsetmacro\sideC{#3*sin(#4)/sin(\alph)}
        %\message{Seite a = #4, Seite b = \sideB, Seite c = \sideC}
        
        % Zeichne die Winkelhalbierenden
        \pgfmathsetmacro\langesC{\sideC+1}
        \pgfmathsetmacro\langesB{\sideB+1}
        \draw[name path=angleB, blue] (B) -- ++(#2:\langesC cm);
        \draw[name path=angleC, green] (C) -- ++({180-#4}:\langesB cm);
        
        % Finde den Schnittpunkt der beiden Winkelhalbierenden und nenne ihn A
        \path[name intersections={of=angleB and angleC, by={A}}];
        \node[above] at (A) {$A$};
        
        % Zeichne die Seiten b und c
        \draw[blue] (A) -- (B) node[midway, above left] {c = \pgfmathprintnumber{\sideC}};
        \draw[green] (A) -- (C) node[midway, above right] {b = \pgfmathprintnumber{\sideB}};
        
        % Zeichne die Innenwinkel
        \shorthandoff{"}
        \draw pic["$\alpha = \alph^\circ$", draw=orange, <->, pic text options={yshift=0.1cm}, angle eccentricity=0.8, angle radius=1cm] {angle=B--A--C};
        \draw pic["$\beta = #2^\circ$", draw=orange, <->, pic text options={yshift=0.1cm}, angle eccentricity=0.8, angle radius=1cm] {angle=C--B--A};
        \draw pic["$\gamma = #4^\circ$", draw=orange, <->, pic text options={yshift=0.1cm}, angle eccentricity=0.8, angle radius=1cm] {angle=A--C--B};
        \shorthandon{"}
        \message{Winkel \alpha = \alph, Winkel \beta = #2, Winkel \gamma = #4}
        \message{Seite a = #3, Seite b = \sideB, Seite c = \sideC}
        
        
    \end{tikzpicture}
}




\begin{document}
    \WWW{30}{40}{110}{4}\\
    \WSW{50}{5}{60}\\
    \SSS{3}{4}{5}\\
\end{document}

Antwort1

Fazit: Verwenden von Graden! Ich habe es mehrmals mit Radiant und Graden versucht, aber das hat auch nicht funktioniert. Anscheinend hatte ich mehrere andere Probleme, die „zufällig/willkürlich“ gelöst wurden. Das hier funktioniert einwandfrei:


\pgfmathsetmacro\sideB{#5*sin(#3)/sin(#2)}

Vielen Dank für Ihre Aufmerksamkeit! Grüße Patrick

verwandte Informationen