Edit and compile if you like:
% Author: Izaak Neutelings (March 2019)\documentclass[border=3pt,tikz]{standalone}\usetikzlibrary{calc}\tikzset{>=latex} % for LaTeX arrow head\colorlet{knob}{blue!20!black!40}\colorlet{mylightblue}{blue!10}\colorlet{mydarkblue}{blue!30!black}\tikzstyle{arrow}=[->,very thick,mydarkblue]\tikzstyle{vector}=[->,line width=2,green!50!black]% ANGLE\newcommand{\getangle}[3]{%\pgfmathanglebetweenpoints{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}\global\let#1\pgfmathresult}% ENGINE\def\gas{blue!10}\def\engine#1{\def\R{2}\def\l{1}\def\L{4.6}\def\p{1.8}\def\P{3.2}\def\Ra{.35} % crankshaft\def\Rb{.6} % crankshaft\def\Rc{.2} % crankshaft\def\a{40} % wall\def\b{30} % rod\coordinate (O) at (0,0);\coordinate (CS) at (#1:\l);\coordinate (P) at (0,{\l*sin(#1)+sqrt(\P^2-(\l*cos(#1))^2)});\coordinate (RL) at (180-\a:\R);\coordinate (RR) at (\a:\R);\coordinate (TL) at ($(RL)+(0,\L)$);\coordinate (TR) at ($(RR)+(0,\L)$);\coordinate (T) at ($(TL)!.5!(TR)$);\coordinate (PL) at ($(RL)+(0,{\l*(1.4+sin(#1))})$);
Click to download: engine_combustion.tex • engine_combustion.pdf
Open in Overleaf: engine_combustion.tex