3

I am new to latex and I would like to ask, if I could draw the picture below directly with latex ? If yes, could please anyone help me with it ?

enter image description here

  • 3
    Yes (e.g. with TikZ). Please show what you've tried so far (MWE). – TeXnician Aug 13 '17 at 9:33
  • 1
    You can start from this example, with all the elements you need. – marsupilam Aug 13 '17 at 9:42
  • I know you want to do it in Latex, but in my experience it is far faster / more efficient to do it in Inkscape with the Latex extension to render math (see "How to embed a LaTeX equation inside Inkscape" on wiki.inkscape.org/wiki/index.php/LaTeX.). This is particularly true if your diagram gets bigger and if you have to change it later or if you want to use it somewhere else than in your latex document, – P.R. Aug 13 '17 at 18:18
7

an alternative with tikz:

enter image description here

\documentclass[tikz, border=3mm]{standalone}
\usetikzlibrary{positioning,
                shadows,
                shapes,
                }
\begin{document}
    \begin{tikzpicture}[
    node distance = 0pt,
shorten <>/.style = {shorten >=#1, shorten <=#1},
       box/.style = {%
            minimum height=12mm, text width=24mm, align=center,
            draw,  semithick, fill=white, outer sep=0pt,
            drop shadow},%
       sum/.style={%
            circle, draw, fill=white, drop shadow,
            minimum size=6mm, inner sep=0pt, outer sep=0pt,
            node contents={\huge$+$}},
         A/.style = {single arrow, draw, minimum height=8mm,
                     single arrow head extend=1mm,
                     shape border rotate=#1, fill=white, outer sep=0pt,
                     node contents={}},
                    ]
\node (n1) [A=0,label=left:{$f(x,y)$}];
\node (n2) [box,right=of n1] {Degradation\\ function\\$H$};
\node (n3) [A=0,right=of n2];
\node (n4) [sum,right=of n3];
\node (n5) [A=0,label=right:{$g(x,y)$},
            right=of n4];
\node (n6) [A=90,label=right:{$\eta(x,y)$},
            below=of n4];
            right=of n4,
    \end{tikzpicture}
\end{document}
  • Thank you for your answer. How can I make the figure appear centred ? And how can I make the circle transparent so I can write + inside of it ? – Tassou Aug 13 '17 at 15:44
  • @Tassou, sorry in the first i upload not last solution. now is corrected, so sign + is visible. for centering i assume that like to put image in figure float environment. in this case this should help \begin{figure}\centering\begin{tikzpicture}...\end{tikzpicture}\caption{...}\label{...}\end{figure}. – Zarko Aug 13 '17 at 15:55
8

A way to do it with a short code in pstricks:

\documentclass[svgnames, border=20pt] {standalone}
\usepackage{amssymb, amsfonts, relsize}
\usepackage{pst-blur, pst-arrow, pstricks-add}
\usepackage[usestackEOL]{stackengine}
 \usepackage{auto-pst-pdf}

\begin{document}

\psset{ linejoin=1, nodesep=3pt, framesep=6pt, shadowcolor=DarkSlateGray, shadowangle=-30, blur}

$ \displaystyle \begin{psmatrix}[emnode=p, colsep=1.6cm]
        \psDefBoxNodes{In}{f(x, y)\enspace} & \hspace*{-1cm}
        \psDefBoxNodes{Deg}{\psshadowbox{\Centerstack{Degradation\rule{0pt}{3ex}\\function\\$H$}}}
        & \psDefBoxNodes{Circ}{\pscirclebox[shadow=true]{\mbox{\large\bfseries+}}}
        & \pnode[0,2.9pt]{Out}
        %%%
        \pnode[0,1pt](Deg:Cl){Din}
        \pnode[-2pt,2pt](Deg:Cr){Dout}
        \pnode[0pt, -5ex](Circ:bC){Noise}
        \uput[r](Noise){\Centerstack{Noise\\$η(x, y)$}}%
        \uput{6pt}[-20](Circ:tr){g(x, y)}
        \psBigArrow[doublesep=1.1mm](In:Cr)(Din)
        \psBigArrow[doublesep=1.1mm](Dout)(Circ:Cl )
        \psBigArrow[doublesep=1.1mm](Noise)(Circ:bC)
        \psBigArrow[doublesep=1.1mm](Circ:Cr)(Out)
    \end{psmatrix} $

\end{document} 

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.