Spiegeln und Vervielfältigen einer Kontur aus Koordinaten

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: Spiegeln und Vervielfältigen einer Kontur aus Koordinaten

Re: Spiegeln und Vervielfältigen einer Kontur aus Koordinaten

von Patrick1990 » Di 5. Dez 2023, 10:01

Nachtrag:
Es liegt an der Berechnung der Koordinaten mittels pgfmathsetmacro...

Re: Spiegeln und Vervielfältigen einer Kontur aus Koordinaten

von Patrick1990 » Mo 4. Dez 2023, 12:54

Nachdem Stefan mir dankenswerterweise den Hinweis mit dem "pic"-Feature gegeben hat, wollte ich es nun mal so probieren. Allerdings kollidiert da irgendwas. Liegt es an den Koordinaten?
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{fpu, calc, angles, intersections} 
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepackage{comment}

\newcommand{\radiusOHL}[3]{
\path 
(#1)coordinate(M)% Mittelpunkt 
(#2)coordinate(A)% Anfangskoordinate 
(#3)coordinate(B)% Endkoordinate 
; 
\path 
let 
\p1=(M), \p2=(A), 
\n1={veclen({\x2-\x1},{\y2-\y1})} 
in 
pic[draw=black,angle radius=\n1]{angle=A--M--B} ; 
}

\tikzset{zahn/.pic={
% Parameter
\def\N{36}
\def\rot{90-360/\N}
\def\bzhs{0.3}
\def\nutoeffnung{0.8}
\def\do{10}
\def\di{7}
\def\hzhs{0.4}
\def\hrues{0.4}
\def\hzks{0.1}

\def\p{2}
\def\delta{0.2}
\def\alphap{0.5}
\def\dw{1}

\def\rotorcolor{gray!50}
\def\statorcolor{gray}

% Berechnungen
\def\taupdeg{360/(2*\p)}
\def\tauNdeg{360/\N}
\pgfmathsetmacro\dzk{\di+\hzks*(\do-\di)};
\pgfmathsetmacro\drue{\do-\hrues*(\do-\di)};
\pgfmathsetmacro\dzhu{\do-(\hrues+\hzhs)*(\do-\di)};
\pgfmathsetmacro\dro{\di-2*\delta};


% Hilfslinien
\path[color=gray,dashed, name path=DAS] (0,0)++(\rot:\do/2) arc(\rot:\rot+2*360/\N:\do/2);% node {\tiny DAS};
\path[color=gray,dashed, name path=DIS] (0,0)++(\rot:\di/2) arc(\rot:\rot+2*360/\N:\di/2);% node {\tiny DIS};
\path[color=gray,dashed, name path=DRUE] (0,0)++(\rot:\drue/2) arc(\rot:\rot+2*360/\N:\drue/2);% node {\tiny DRUE};
\path[color=gray,dashed, name path=DZK] (0,0)++(\rot:\dzk/2) arc(\rot:\rot+2*360/\N:\dzk/2);% node {\tiny DZK};
\path[color=gray,dashed,name path=GL] (0,0) -- (0, 1.1*\do/2);% node[above] {\tiny GL};
\path[color=gray,dashed,name path=GZ] (0,0) -- ({1.1*\do/2*sin(\nutoeffnung*360/(2*\N))}, {1.1*\do/2*cos(\nutoeffnung*360/(2*\N))});% node[above] {\tiny GZ};
\path[color=gray,dashed,name path=GR] (0,0) -- ({1.1*\do/2*sin(360/(2*\N))}, {1.1*\do/2*cos(360/(2*\N))});% node[above] {\tiny GR};

% Schnittpunkte & Koordinaten
\path[name intersections={of=GL and DIS}](intersection-1) coordinate (c1);% node {\tiny 1};  
\path[name intersections={of=GZ and DIS}](intersection-1) coordinate (c2);% node {\tiny 2};  
\path[name intersections={of=GZ and DZK}](intersection-1) coordinate (c3);% node {\tiny 3};  
\path (c3);
\pgfgetlastxy{\xa}{\ya};
\pgfmathsetmacro\bzh{2*\bzhs*\xa};
\path[name path=BZH] ({\bzh/2 pt},0) -- ({\bzh/2 pt},1.1*\drue/2);
\path ({\bzh/2 pt},\dzhu/2) coordinate (c4);% node{\tiny 4};% node{\tiny 5};
\path[name intersections={of=BZH and DRUE}](intersection-1) coordinate (c5);% node {\tiny 5};  
\path[name intersections={of=GR and DRUE}](intersection-1) coordinate (c6);% node {\tiny 6};  
\path[name intersections={of=GR and DAS}] (intersection-1) coordinate (c7);% node {\tiny 7};
\path[name intersections={of=GL and DAS}](intersection-1) coordinate (c8);% node {\tiny 8};  
\path[name path=HLW] (c3) -- (c4);



% Spiegelung
\foreach \x in {2,3,4,5,6,7,8} {
\path (c\x);
\pgfgetlastxy{\xc}{\yc};
\path (-\xc, \yc) coordinate (c\x m);% node{\tiny \x m};
}  



% Kontur
\radiusOHL{{0,0}}{c7}{c7m};
\radiusOHL{{0,0}}{c6}{c5};
\draw (c5) -- (c4); 
\draw (c4) -- (c3); 
\draw (c3) -- (c2); 
\radiusOHL{{0,0}}{c2}{c2m};
\draw (c2m) -- (c3m); 
\draw (c3m) -- (c4m); 
\draw (c4m) -- (c5m); 
\radiusOHL{{0,0}}{c5m}{c6m};
}}




\begin{document}
\begin{tikzpicture}
\draw (0,0)    pic{zahn};
\draw (0,0)    pic[rotate=45]{zahn};
\end{tikzpicture}
\end{document}

Spiegeln und Vervielfältigen einer Kontur aus Koordinaten

von Patrick1990 » Do 23. Nov 2023, 11:25

Hallo,
ich suche eine Möglichkeit die Kontur an der y-Achse zu spiegeln und anschließend das Konstrukt n mal um den Koordinatenursprung zu drehen und zu vervielfältigen.
Hat jemand eine Idee? Oder sollte man das ganz anders aufbauen?
Ich hätte mir eventuell die Koordinaten innerhalb einer Schleiße durch eine Koordinatendrehung neu berechnet und gezeichnet.

Hier das Minimalbeispiel:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{fpu, calc, angles, intersections} 
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\newcommand{\radiusOHL}[3]{
\path 
(#1)coordinate(M)% Mittelpunkt 
(#2)coordinate(A)% Anfangskoordinate 
(#3)coordinate(B)% Endkoordinate 
; 
\path 
let 
\p1=(M), \p2=(A), 
\n1={veclen({\x2-\x1},{\y2-\y1})} 
in 
pic[draw=black,angle radius=\n1]{angle=A--M--B} ; 
}


\begin{document}
\begin{tikzpicture}
\def\N{12}
\def\rot{90-360/\N}
\def\rotb{90}
\def\bzhs{0.3}
\def\nutoeffnung{0.8}
\def\do{10}
\def\di{7}
\def\hzhs{0.4}
\def\hrues{0.3}

\def\hzks{0.1}

%Durchmesser Zahnkopf innen
\pgfmathsetmacro\dzk{\di+\hzks*(\do-\di)};
\pgfmathsetmacro\drue{\do-\hrues*(\do-\di)};
\pgfmathsetmacro\dzhu{\do-(\hrues+\hzhs)*(\do-\di)};

% Hilfslinien
\draw[color=gray,dashed, name path=DAS] (0,0)++(\rot:\do/2) arc(\rot:\rot+2*360/\N:\do/2) node {\tiny DAS};
\draw[color=gray,dashed, name path=DIS] (0,0)++(\rot:\di/2) arc(\rot:\rot+2*360/\N:\di/2) node {\tiny DIS};
\draw[color=gray,dashed, name path=DRUE] (0,0)++(\rot:\drue/2) arc(\rot:\rot+2*360/\N:\drue/2) node {\tiny DRUE};
\draw[color=gray,dashed, name path=DZK] (0,0)++(\rot:\dzk/2) arc(\rot:\rot+2*360/\N:\dzk/2) node {\tiny DZK};
\draw[color=gray,dashed,name path=GL] (0,0) -- (0, \do/2) node[above] {\tiny GL};
\draw[color=gray,dashed,name path=GZ] (0,0) -- ({\do/2*sin(\nutoeffnung*360/(2*\N))}, {\do/2*cos(\nutoeffnung*360/(2*\N))}) node[above] {\tiny GZ};
\draw[color=gray,dashed,name path=GR] (0,0) -- ({\do/2*sin(360/(2*\N))}, {\do/2*cos(360/(2*\N))}) node[above] {\tiny GR};

% Schnittpunkte & Koordinaten
\path[name intersections={of=GL and DIS}](intersection-1) coordinate (c1) node {\tiny 1};  
\path[name intersections={of=GZ and DIS}](intersection-1) coordinate (c2) node {\tiny 2};  
\path[name intersections={of=GZ and DZK}](intersection-1) coordinate (c3) node {\tiny 3};  
\pgfgetlastxy{\xa}{\ya};
\pgfmathsetmacro\bzh{2*\bzhs*\xa};
\path ({\bzh/2 pt},\dzhu/2) coordinate (c4) node{\tiny 4} -- ({\bzh/2 pt},\drue/2) coordinate (c5) node{\tiny 5};
\path[name intersections={of=GR and DRUE}](intersection-1) coordinate (c6) node {\tiny 6};  
\path[name intersections={of=GR and DAS}] (intersection-1) coordinate (c7) node {\tiny 7};
\path[name intersections={of=GL and DAS}](intersection-1) coordinate (c8) node {\tiny 8};  

% Kontur
\radiusOHL{{0,0}}{c2}{c1};
\draw (c2) -- (c3);
\draw (c3) -- (c4);
\draw (c4) -- (c5);
\radiusOHL{{0,0}}{c6}{c5};
\draw (c6) -- (c7);
\radiusOHL{{0,0}}{c7}{c8};
\draw (c8) -- (c1);

\end{tikzpicture}
    

\end{document}

Nach oben