
Ich habe versucht, das Bild links zu zeichnen, aber bei dem Bild rechts konnte ich nichts machen.
Es scheint im Bereich der Zahnradübertragung tätig zu sein.
Es wäre toll, wenn ein warmherziger Freund eine Animation machen könnte.
\documentclass[tikz,border=3mm]{standalone}
\usepackage{tikz-cd}
\usetikzlibrary{calc}
\usetikzlibrary{patterns,patterns.meta,decorations.pathmorphing}
\begin{document}
\begin{tikzpicture}
\draw (0,1) circle [radius=1];
\draw (0,3) circle [radius=1];
\draw[-stealth] (-0.65,1.3) arc (-200:-260:0.6);
\draw[-stealth] (-0.65,2.7) arc (200:260:0.6);
\draw[{Circle[open, length=1mm]}-Stealth] (0,1) -- (0,0);
\draw[{Circle[open, length=1mm]}-Stealth] (0,3) -- (0,2);
\path[pattern={Lines[angle=45,distance={4pt/sqrt(2)}]}] (-1.5,0) edge[thick] ++(3,0)
rectangle ++ (3,-0.2);
\end{tikzpicture}
\end{document}
Antwort1
Kompilieren mitAsymptote.
Bild 1
unitsize(1cm);
import patterns;
path c1=circle((0,1),1),c2=circle((0,3),1);
path arc1=arc((0,1),0.7,-200,-250);
path arc2=arc((0,3),0.7,200,250);
draw(c1^^c2);
draw(arc1,Arrow(size=3));
draw(arc2,Arrow(size=3));
draw((0,1)--(0,0),Arrow());
dot((0,1),FillDraw(white));
draw((0,3)--(0,2),Arrow());
dot((0,3),FillDraw(white));
add("yourpattern",hatch(2mm,dir(45)));
fill(box((-1.5,-0.2),(1.5,0)),pattern("yourpattern"));
draw((-1.5,0)--(1.5,0),0.7bp+black);
shipout(bbox(2mm,invisible));
Bild 2
unitsize(1cm);
import patterns;
import graph;
path c1=circle((0,1),1),c2=circle((0,3),1);
draw(c1^^c2);
draw((0,1)--(0,1)+dir(-150),Arrow);
draw((0,3)--(0,3)+dir(-30),Arrow);
dot((0,1),FillDraw(white));
dot((0,3),FillDraw(white));
path arc1=arc((0,1),1,210,270), arc2=arc((0,1),1,30,90), arc3=arc((0,3),1,270,330);
path line1=(0,0)--(-length(arc1),0);
add("yourpattern",hatch(2mm,dir(45)));
fill(box((-1.5,-0.2),(1.5,0)),pattern("yourpattern"));
draw((-1.5,0)--(1.5,0),0.6bp+black);
draw(arc1^^line1,0.8bp+red);
draw(arc2^^arc3,0.8bp+blue);
shipout(bbox(2mm,invisible));
Animation. (SCHLECHTER CODE)
import animate;
import patterns;
settings.tex="pdflatex";
animation Ani;
unitsize(1cm);
real t=6.284; // arclength(circle((0,1),1))=6.28406679229544
for(real a=0.0; a <= t; a=a+t/50)
{
save();
draw(circle((0+a,1),1)^^circle((0+a,3),1));
draw((0+a,1)--(0+a,1)+dir(-90-a*180/pi),Arrow());
draw((0+a,1)--(0+a,1)+dir(180+-90-a*180/pi),dashed+blue);
draw((0+a,3)--(0+a,3)+dir(-90+a*180/pi),Arrow());
dot((0+a,1),FillDraw(white));
dot((0+a,3),FillDraw(white));
// L=alpha*pi*r/180 (wikipedia)
path arc1=(a != 0.0) ? arc((0+a,1),1,-90,-90-a*180/pi) : nullpath, // r=1
arc2=(a != 0.0) ? arc((0+a,1),1,90,90-a*180/pi) : nullpath,
arc3=(a != 0.0) ? arc((0+a,3),1,-90,-90+a*180/pi) : nullpath;
path line1=(a != 0.0) ? (0,0)--(a,0) : nullpath;
add("yourpattern",hatch(2mm,dir(45)));
fill(box((-1,-0.2),(1+t,0)),pattern("yourpattern"));
draw((-1,0)--(1+t,0),0.6bp+black);
draw(arc2^^arc3,0.8bp+blue);
draw(arc1^^line1,0.8bp+red);
if (a == t){
draw(circle((a,3),1),0.8bp+blue);
draw(circle((a,1),1),0.8bp+red);
}
Ani.add();
restore();
}
erase();
Ani.movie(BBox(2mm,invisible));
Gute Animation.(EMPFOHLEN)
import animate;
import patterns;
settings.tex="pdflatex";
animation Ani;
unitsize(1cm);
real t=arclength(circle((0,1),1));
int iter=68;
for (int i=0; i <= iter; ++i)
{
save();
real a=i*t/iter;
draw((0+a,1)--(0+a,1)+dir(-90-a*180/pi),Arrow());
draw((0+a,1)--(0+a,1)+dir(180+-90-a*180/pi),dashed+blue);
draw((0+a,3)--(0+a,3)+dir(-90+a*180/pi),Arrow());
dot((0+a,1),FillDraw(white));
dot((0+a,3),FillDraw(white));
add("yourpattern",hatch(2mm,dir(45)));
fill(box((-1,-0.2),(1+t,0)),pattern("yourpattern"));
draw((-1,0)--(1+t,0),0.6bp+black);
if (i == 0){
draw(circle((a,3),1));
draw(circle((a,1),1));
}
else if (i < iter){
draw(circle((a,3),1));
draw(circle((a,1),1));
// L=alpha*pi*r/180 (wikipedia)
path arc1=arc((0+a,1),1,-90,-90-a*180/pi), // r=1
arc2=arc((0+a,1),1,90,90-a*180/pi),
arc3=arc((0+a,3),1,-90,-90+a*180/pi);
path line1=(0,0)--(a,0);
draw(arc2^^arc3,0.6bp+blue);
draw(arc1^^line1,0.8bp+red);
}
else {
draw(circle((a,3),1),0.6bp+blue);
draw(circle((a,1),1),0.6bp+red);
draw((0,0)--(a,0),0.8bp+red);
}
Ani.add();
restore();
}
erase();
Ani.movie(BBox(2mm,invisible));
Antwort2
Hier ist einTiKZLösung, die eine leicht erweiterte Version des OP ist und animiert ist mit
konvertieren -delay 5 -loop 0 -density 200 -background white -alpha entfernen file.pdf file.gif
produzieren:
Um dies aus dem MWE zu erhalten, ändern wir zunächst den Code, um die Pfeile in beliebigen Winkeln positionieren zu können, so dass wir
Hier ist die Modifikation tikzpicture
vom MWE, die dies erzeugt:
\foreach \ang [evaluate=\ang as \dist using {(\ang-270)*pi/180}] in {270,265,...,-85} {%
\begin{tikzpicture}
\useasboundingbox (-3.2, -0.3) rectangle (3.2, 4.2);
\draw (0,1) circle [radius=1];
\draw (0,3) circle [radius=1];
\draw[-stealth,red] (-0.65,1.3) arc (-200:-260:0.6);
\draw[-stealth,blue] (-0.65,2.7) arc (200:260:0.6);
\path[pattern={Lines[angle=45,distance={4pt/sqrt(2)}]}]
(-3,0) edge[thick] ++(6,0) rectangle ++ (6,-0.2);
\draw[-Stealth] (0,3)node[axel]{} -- ++({180-\ang}:1);
\draw[-Stealth] (0,1)node[axel]{} -- ++(\ang:1);
\draw[red,thick] (0,0) -- ++ (\dist, 0);
\draw[blue,thick](0,2) arc (270:540-\ang:1);
\draw[blue,thick](0,2) arc (90:\ang-180:1);
\draw[red,thick] (0,0) arc (270:\ang:1);
\end{tikzpicture}%
}
Die stationäre Version ist beim Betrachten etwas ablenkend, enthält aber bereits alles, was wir brauchen, um das Bild rollen zu lassen. Der Hauptunterschied zwischen der stationären und der rollenden Version besteht darin, dass wir die x
-Koordinaten der meisten Knoten um verschieben müssen \dist
. Hier ist der endgültige Code:
\documentclass[tikz,border=3mm]{standalone}
\usepackage{tikz-cd}
\usetikzlibrary{calc}
\usetikzlibrary{patterns,patterns.meta,decorations.pathmorphing}
\tikzset{
axel/.style = {circle, minimum width=1mm,inner sep=0pt, draw, fill=white}
}
\begin{document}
\foreach \ang [evaluate=\ang as \dist using {(270-\ang)*pi/180}] in {270,265,...,-85} {%
\begin{tikzpicture}
\useasboundingbox (-2, -0.3) rectangle (8, 4.2);
\draw (\dist,1) circle [radius=1];
\draw (\dist,3) circle [radius=1];
\draw[-stealth,red] (\dist-0.65,1.3) arc (-200:-260:0.6);
\draw[-stealth,blue] (\dist-0.65,2.7) arc (200:260:0.6);
\path[pattern={Lines[angle=45,distance={4pt/sqrt(2)}]}]
(-1,0) edge[thick] ++(8,0) rectangle ++ (8,-0.2);
\draw[-Stealth] (\dist,3)node[axel]{} -- ++({180-\ang}:1);
\draw[-Stealth] (\dist,1)node[axel]{} -- ++(\ang:1);
\draw[red,thick] (0,0)--(\dist,0);
\draw[blue,thick](\dist,2) arc (270:540-\ang:1);
\draw[blue,thick](\dist,2) arc (90:\ang-180:1);
\draw[red,thick] (\dist,0) arc (270:\ang:1);
\end{tikzpicture}%
}
\end{document}
Antwort3
Die Sicht des bewegten Beobachters, erstellt mit TikZ.
\documentclass{standalone}
%\documentclass[dvisvgm]{standalone}
%\documentclass[export]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,patterns.meta,arrows.meta}
\usepackage{animate}
\usepackage{xsavebox} % xlrbox
\begin{document}
\begin{xlrbox}{ground}
\begin{tikzpicture}
\path[pattern={Lines[angle=45,distance={4pt/sqrt(2)}]}]
(-1,0) edge[thick] ++(8,0) rectangle ++ (8,-0.2);
\end{tikzpicture}%
\end{xlrbox}%
%
\begin{animateinline}[controls,loop]{20}
\multiframe{181}{iAngle=270+-2}{
\pgfmathsetmacro\dist{(270-\iAngle)*pi/180}%
\begin{tikzpicture}
\path[use as bounding box, clip] (\dist-2,-0.3) rectangle (\dist+2,4.2);
\draw (\dist,1) circle [radius=1];
\draw (\dist,3) circle [radius=1];
\draw[-stealth,red] ($(\dist,1)+(\iAngle-110:0.65)$) arc (\iAngle-110:\iAngle-170:0.65);
\draw[-stealth,blue] ($(\dist,3)+(110-\iAngle:0.65)$) arc (110-\iAngle:170-\iAngle:0.65);
\node [anchor=north west, inner sep=0pt] at (-1,0) {\theground};
\draw[dashed,blue] (\dist,1) -- ++(\iAngle-180:1);
\draw[-Stealth] (\dist,1) -- ++(\iAngle:1);
\filldraw[fill=white] (\dist,1) circle (0.5mm);
\draw[-Stealth] (\dist,3) -- ++(180-\iAngle:1);
\filldraw[fill=white] (\dist,3) circle (0.5mm);
\draw[red,thick] (0,0)--(\dist,0);
\draw[blue,thick](\dist,2) arc (-90:180-\iAngle:1);
\draw[blue,thick](\dist,2) arc (90:\iAngle-180:1);
\draw[red,thick] (\dist,0) arc (270:\iAngle:1);
\end{tikzpicture}%
}
\end{animateinline}
\end{document}
Antwort4
So? Keine Animation.
\documentclass[tikz,margin=3mm]{standalone}
\usepackage{tikz-cd}
\usetikzlibrary{calc}
\usetikzlibrary{patterns,patterns.meta,decorations.pathmorphing}
\begin{document}
\begin{tikzpicture}
\draw (0,1)coordinate(D) circle [radius=1];
\draw (0,3)coordinate(U) circle [radius=1];
\draw[{Circle[open, length=1mm]}-Stealth] (D) --++ (-150:1);
\draw[{Circle[open, length=1mm]}-Stealth] (U) --++ (-20:1);
\draw[densely dashed, blue] (D) --++ (30:1);
\draw [very thick, red] ([yshift=-1cm]D)coordinate(DD) arc (-90:-150:1);
\draw [very thick, blue] ([yshift=1cm]D) arc (90:30:1);
\draw [very thick, blue] ([yshift=-1cm]U) arc (-90:-20:1);
\path[pattern={Lines[angle=45,distance={4pt/sqrt(2)}]}] (-1.5,0) edge[thick] ++(3,0) rectangle ++ (3,-0.2);
\draw [very thick, red] (DD)--++(180:0.9);
\end{tikzpicture}
\end{document}